Android 1.5の連絡先タイプ変更のトリック

偶然、私は真新しいHTC Heroのオーナーになりました。

初めて電話をオンにしたときに、Googleアカウントをセットアップします。 すべての連絡先が電話と同期されました。 Googleのビデオプレゼンテーションによると、非常に便利です。 たとえば、携帯電話を紛失しても、連絡先は引き続きGoogleに保存されます。



すべては問題ありませんが、個人データをリモートのGooglサーバーに保存したくないだけです。 連絡先の設定を確認しました-タイプの変更はありません。 つまり、連絡先を作成するときに、Google、電話、SIMを選択できます。 しかし、将来、連絡先の種類は変更されません。



しかし、トリッキーなものごとに、確かに何かがあります。



1)Android SDKをコンピューターにインストールします。



2)adbユーティリティ(SDKのTOOLSディレクトリにあります)を使用して、電話に接続します。

./adb shell







3)次に、連絡先のデータベースを開きます。

# sqlite3 /data/data/com.android.providers.contacts/databases/contacts.db





注:非公式のルートファームウェアがあります。 公式ファームウェアでは、この方法の動作を確認しませんでした。



4)最も好奇心が強い人のために、テーブルヘッダーの表示を有効にできます。

sqlite> .headers ON





データベース内のすべてのテーブルのリストも参照してください。

sqlite> .tables







5)すべての連絡先を確認します。

sqlite> select * from people;





注:必要な連絡先の「_id」(行の最初の番号)を覚えておいてください。 たとえば、164。



6)そして、見よ、私たちは連絡先の種類をGoogleから電話に変更します:

sqlite> update people set extra_group='2' where _id='164';





または、すべての連絡先を変更する必要がある場合(ポイント5-スキップ ):

sqlite> update people set extra_group='2';







これで、この連絡先は電話に保存され、Google連絡先の表示をオフにできます。



PS:この記事が誰かの役に立つことを願っています。 コメントを歓迎します!

UPD:

ルートとsqlite3のないファームウェアが電話にない場合は、コンピューターで使用します。 コンピューターにデータベースをダウンロードします。

adb pull /data/data/com.android.providers.contacts/databases/contacts.db contacts.db





コンピューターでsqlite3を起動します。

sqlite3 contacts.db





次に、連絡先のタイプを変更し、sqlite3を終了します。

次に、変更したファイルを電話にアップロードします。

adb push contacts.db /data/data/com.android.providers.contacts/databases/contacts.db





sqlite3をコンピューターにインストールすることは、ルート化されていないヒーローよりも簡単です。



All Articles