2015-05-20 2 views
0

Я создаю приложение sms, в составном фрагменте sms Я начинаю контактную деятельность для результата, а onResultActivity получаю результат. мой код работает для тех контактов, которые сохраняются в телефоне, но дает nullPointerException для тех контактов, которые извлекаются из Facebook, мой код это ..Выберите контакт из списка контактов android

Intent pickContactIntent = new Intent(Intent.ACTION_PICK, Uri.parse("content://contacts")); 
    pickContactIntent.setType(ContactsContract.CommonDataKinds.Phone.CONTENT_TYPE); // Show user only contacts w/ phone numbers 
    startActivityForResult(pickContactIntent, 1001); 

и onResultActivity

if (requestCode == 1001) { 
     // Make sure the request was successful 
     if (resultCode == Activity.RESULT_OK) { 
      // Get the URI that points to the selected contact 
      Uri contactUri = data.getData(); 
      // We only need the NUMBER column, because there will be only one row in the result 
      String[] projection = {ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME}; 

      Cursor cursor = context.getContentResolver().query(contactUri, projection, null, null, null); 
      cursor.moveToFirst(); 

      // Retrieve the phone number from the NUMBER column 
      number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 

      setContactBubble(name); 
      // Do something with the phone number... 
     } 
    } 

ответ

0

Вызов этого метода в onActivityResult

public String getNumberContacts(Intent intent) { 

     String phoneNumber = ""; 
     Cursor cursor = getContentResolver().query(intent.getData(), null, null, null, null); 
     while (cursor.moveToNext()) { 
      String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
      int hasPhone = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

      if (hasPhone == 1) { 
       Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); 
       while (phones.moveToNext()) { 
        phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        break; 
       } 
       phones.close(); 
      } 
      break; 
     } 

     cursor.close(); 

     return phoneNumber; 
    } 
+0

Мне нужно имя и номер, также из контактов, которые выведены из facebook –

Смежные вопросы