0

使用する着信番号を取得するには

  TeleponyManager.EXTRA_INCOMING_NUMBER

しかし、連絡先データベースに既に保存されている場合に、着信コールの表示名を取得する方法。

4

2 に答える 2

0

ブロードキャスト レシーバーで getContactDisplayNamebyNumber というメソッドを作成し、その着信番号をパラメーターとしてメソッドに渡します。このメソッドは、番号が連絡先名とともに携帯電話に保存されているかどうかを確認します。保存されている場合は連絡先名を返し、それ以外の場合は不明な番号を返します。

このコードをチェックしてください

   public String getContactDisplayNameByNumber(String number,Context context) {
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
    name = "Incoming call from";

    ContentResolver contentResolver = context.getContentResolver();
    Cursor contactLookup = contentResolver.query(uri, null, null, null, null);

    try {
        if (contactLookup != null && contactLookup.getCount() > 0) {
            contactLookup.moveToNext();
            name = contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));
            // this.id =
            // contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.Data.CONTACT_ID));
            // String contactId =
            // contactLookup.getString(contactLookup.getColumnIndex(BaseColumns._ID));
        }else{
            name = "Unknown number";
        }
    } finally {
        if (contactLookup != null) {
            contactLookup.close();
        }
    }

    return name;
}

Vinod Dirishala の GitHub リポジトリからコードを取得する

幸せなコーディング :D :D

于 2016-12-18T14:23:51.267 に答える