2011-01-26 6 views
2

で「インターネット通話」の情報を取得するにはどのように、私は連絡先のすべての情報を取得し、 :私はすべての連絡先情報のバックアップを取り、その後、復元したアンドロイドのアプリケーションに取り組んでいますアンドロイド

表示名

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null, null, null) 
String name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 

電話番号

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null); 

Similary しかし、私はできない "インターネット通話" の値を取得します。 どんな授業でも、私はインターネット通話情報に関する情報を得ることを誰かに教えてください。

+0

これは実際には表示されません。連絡先は既にGoogleアカウントに保存されています:/ –

答えて

1

これが最善の方法であるかどうかわかりませんが、うまくいきました。私はかなり新しいアンドロイドです。

Uri uri = ContactsContract.Data.CONTENT_URI; 
String[] projection = new String[] { 
    ContactsContract.Data._ID, 
    ContactsContract.Data.DISPLAY_NAME, 
    ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS, 
    ContactsContract.CommonDataKinds.SipAddress.TYPE, 
}; 
String selection = 
    ContactsContract.Data.MIMETYPE+" ='" 
    +ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE+"'"; 
String[] selectionArgs = null; 
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC"; 
Cursor cursor = managedQuery(uri, projection, selection, selectionArgs, sortOrder); 

電話番号は雑多な情報のデータに格納されており、あなたはmimeの種類を検索しているようです。

HTH

g。

0

私はテストしました。私はインターネット通話の価値を得ることができます。以下のコードを試してください。

Uri uri = ContactsContract.Contacts.CONTENT_URI; 
ContentResolver cr = getContentResolver(); 
Cursor cur=cr.query(uri, null, null, null, sortOrder); 
     if(cur.getCount()>0){ 
     while(cur.moveToNext()){ 
    if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))> 0) { 
String internetWhere = ContactsContract.Data.CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?"; 
        String[] internetWhereParams = new String[]{id,ContactsContract.CommonDataKinds.SipAddress.CONTENT_ITEM_TYPE}; 
        Cursor internetCur = cr.query(ContactsContract.Data.CONTENT_URI, null, internetWhere, internetWhereParams, null); 
        if (internetCur.moveToFirst()) { 
        String internetCall = internetCur.getString(internetCur.getColumnIndex(ContactsContract.CommonDataKinds.SipAddress.SIP_ADDRESS)); 
     Log.e(TAG, "internet Call: " + internetCall); 
        } internetCur.close(); 

}    
      } 
     } cur.close(); 
関連する問題