0

受信メッセージ番号に関連付けられている連絡先の名前を取得したいのですが。私は次のコードを思いついた。

Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(msgSender));
        Cursor c = getContentResolver().query(lookupUri, new String[]{Contacts.DISPLAY_NAME},null,null,null);

        try {
            c.moveToFirst();
            displayName = c.getString(0);
        } catch (Exception e) {
            // TODO: handle exception
        }finally{
            c.close();
        }

問題は、エミュレーターでは機能しているが、モバイルデバイスでは機能していないことです。電話を再起動してみました。しかし、まだ機能していません。これに似たコードが見つかりましたが、実際の電話では機能しません。

4

1 に答える 1

0

Androidバージョン2.1のRealMobileで動作するには、以下のコードを適用する必要があります

    //String msgSender="Mobile No";
    Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(msgSender));
    Cursor c = getContentResolver().query(lookupUri, new String[]{ContactsContract.Data.DISPLAY_NAME},null,null,null);
    try {
        c.moveToFirst();
     String  displayName = c.getString(0);
    } catch (Exception e) {
        // TODO: handle exception
    }finally{
        c.close();
    }

Android 2.1では、を使用する必要があります。ContactsContractまた、を使用するPhoneLookup必要がありContactsContractます。

以下の許可を与えていることを確認してください。

       <uses-permission android:name="android.permission.READ_CONTACTS"/>
于 2012-04-14T10:45:38.407 に答える