0

Androidデバイスの電話帳に保存/同期されているすべてのGoogleの連絡先を特定する必要があります。次に、各連絡先の固有の連絡先ID(Googleの一意の連絡先ID)を他のデバイスや他のプラットフォームと同じにする必要があります。Android:ContactProviderデータベースからGoogleの一意の連絡先IDを取得する

RAW_CONTACT_IDに関するAndroidデベロッパーのドキュメントを読んでいます。また、生の連絡先IDを取得しようとしましたが、他の端末の生の連絡先IDの値が異なります。

誰でも私を正しい方向に向けることができれば、本当に役に立ちます。

詳細については、お問い合わせください。

答えて

0

は、発信者IDのために、例えば、電話番号を検索した結果を表すContactsContract.PhoneLookup

テーブルを使用してみてください。ルックアップを実行するには、検索する番号をCONTENT_FILTER_URIに追加する必要があります。このクエリは高度に最適化されています。

PhoneLookup._ID 

は、あなたが探しているものである

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
resolver.query(uri, new String[]{PhoneLookup.DISPLAY_NAME,... 

ます。またthis postで提供される解決策を試してください:AndroidのContacts

public static int getContactIDFromNumber(String contactNumber,Context context) 
{ 
    contactNumber = Uri.encode(contactNumber); 
    int phoneContactID = new Random().nextInt(); 
    Cursor contactLookupCursor = context.getContentResolver().query(Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,contactNumber),new String[] {PhoneLookup.DISPLAY_NAME, PhoneLookup._ID}, null, null, null); 
     while(contactLookupCursor.moveToNext()){ 
      phoneContactID = contactLookupCursor.getInt(contactLookupCursor.getColumnIndexOrThrow(PhoneLookup._ID)); 
      } 
     contactLookupCursor.close(); 

    return phoneContactID; 
} 
0

すべて_ID値をしている地元、彼らは通常の増分であり、は、デバイス間で同期されませんです。

アプリのSyncAdapter(この場合はGoogleのSyncAdapter)によって同期される可能性のある値はSYNC1, SYNC2, SYNC3, SYNC4です。

しかし、これらのフィールドは何もすることは保証されていないことに注意してください。SyncAdapterは、必要な目的にそれらを使用できます。通常、そのうちの1つは印刷するだけの「サーバー識別子」として使用されます。手動でどちらを確認してください。

関連する問題