2012-04-14 12 views
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(); 
     } 

問題は、そのエミュレータでは動作していますが、モバイルデバイスでは動作しません。私は自分の携帯電話を再起動しようとしました。しかし、まだ動作していません。私はこれに類似したコードを検索しましたが、実際の電話では動作しません。

+0

読み取り電話はどのバージョンですか? – Herry

+0

バージョンは2.3.5です。 –

答えて

0

あなたは私たちがContactsContractを使用する必要がありますし、またPhoneLookupContactsContractでなければなりませんアンドロイド2.1でAndroidのバージョン2.1

//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(); 
    } 

と実モバイルで動作するようにコードの下に適用する必要があります。

下記の権限を持っていることを確認してください。

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

これも試してみました。働いていない。マイモバイルの –

+0

は、HTC Incredible Sで動作しています。 – Herry

関連する問題