2011-01-26 2 views
2

Я работаю на приложение для Android, в которой я беру резервное копирование всех контактных данных, а затем восстановить, я получить всю информацию о контакте, Например:Как получить «Интернет-вызов» Информация в Android

Display Name

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

Не знаете, если это лучший способ, но он сработал, я довольно новый для android.

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();