2012-04-14 4 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

Вам необходимо подать ниже код для работы в Real Mobile с андроид версии 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(); 
    } 

в Android 2.1, мы должны использовать ContactsContract, а также PhoneLookup должны быть ContactsContract.

Убедитесь, что вы дали разрешение ниже.

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

Пробовал это тоже. Не работает. –

+0

в My Mobile работает на HTC Incredible S. – Herry

Смежные вопросы