2016-07-15 8 views
0

着信番号を取得するために以下のコードを使用しています。次のステップで電話番号を使用して連絡先名を取得していません

String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER); 

、私は方法getContactName(mContext,number)使っcontatc名を取得しようとしました:(私の着信が私の連絡先の一つであり、その数とnumber文字列がある

public static String getContactName(Context context, String phoneNumber) { 
    ContentResolver cr = context.getContentResolver(); 
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber)); 
    Cursor cursor = cr.query(uri, new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME}, null, null, null); 
    if (cursor == null) { 
     return null; 
    } 
    String contactName = null; 
    if(cursor.moveToFirst()) { 
     contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME)); 
    } 

    if(cursor != null && !cursor.isClosed()) { 
     cursor.close(); 
    } 

    return contactName; 
} 

のが、この方法では、常にnullを返しますこのコードがうまくいかない理由はわかりません。ご提供いただけるご支援に感謝します。

答えて

0

マニフェストで許可を追加してみてください:

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

ありがとうございました@chengsam。私は以前にそれを追加しました。この権限を追加しないと、セキュリティ例外のためにアプリがクラッシュします。 –

+0

この[質問](http://stackoverflow.com/questions/36700475/getting-null-value-while-retrieving-the-contact-name-from-contact-email)を参照してください。 – chengsam

関連する問題