2017-06-02 81 views
0

我搜索了一些東西,但沒有正確顯示遊標上的紅色標記。請更正這些錯誤。提前感謝。是否有正確的方法來獲取完整的聯繫人名單?如何閱讀郵件中的聯繫人名稱?

String address = (here its show error)cursor.getString(**cursor**.getColumnIndex("address")); 

    final String[] projection = new String[] {ContactsContract.Data.DISPLAY_NAME}; 

    String displayName = null; 
    Cursor contactCursor = null; 

    try { 
     Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, 
       Uri.encode(address)); 

     contactCursor = getContentResolver().query(uri, 
       projection, 
       null, 
       null, 
       null); 

     if (contactCursor != null && contactCursor.moveToFirst()) { 
      displayName = contactCursor.getString(
        contactCursor.getColumnIndex(ContactsContract.Data.DISPLAY_NAME)); 
     } 
    } 
    catch(Exception e) { 
     e.printStackTrace(); 
    } 
    finally { 
     if(contactCursor != null) { 
      contactCursor.close(); 
     } 
    } 
+0

您是否添加了必要的權限?並在運行時請求它們? –

+0

不,但是當我寫這一行字符串地址=(這裏顯示錯誤)cursor.getString(** cursor **。getColumnInde光標顯示爲紅色格式?是否添加任何gradle? –

回答

1

如果您沒有設置權限讀取聯繫人,以便添加此之前<application/>標籤

<uses-permission android:name="android.permission.READ_CONTACTS" /> 

和Android的API的體現23+,你需要在此之前的Java類添加到您嘗試詢問

requestpermissions(Manifest.android.permissions.READ_CONTACTS, 0/*int*/);