2013-12-10 49 views
0

在此先感謝您的幫助。如何在Android應用程序中檢索並顯示聯繫人姓名和相應的SMS正文?

我想做一個看起來類似於原生android消息應用的開始活動的活動:聯繫人圖像,聯繫人姓名,郵件正文的前幾個單詞。

到目前爲止,在本網站的幫助下,我可以弄清楚如何在列表視圖中檢索發件人電話號碼。這裏是我使用的代碼的一部分:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    List<SMSData> smsList = new ArrayList<SMSData>(); 
    Uri uri = Uri.parse("content://sms/inbox"); 
    Cursor c = getContentResolver().query(uri, null, null, null, null); 

    if (c.moveToFirst()) { 
     for (int i = 0; i < c.getCount(); i++) { 
      SMSData sms = new SMSData(); 
      sms.setBody(c.getString(c.getColumnIndexOrThrow("body")) 
        .toString()); 
      sms.setNumber(c.getString(c.getColumnIndexOrThrow("address")) 
        .toString()); 

      smsList.add(sms); 

      c.moveToNext(); 
     } 
    } 
    c.close(); 

    setListAdapter(new ListAdapter(this, smsList)); 

我的問題是,如何檢索並與相應的短信體顯示聯繫人姓名???

我到目前爲止找到的最接近的解決方案是this,但我無法弄清楚如何將我的代碼和此解決方案放在一起。

+0

你鏈接到似乎很簡單的代碼,我不明白的地方你的問題是什麼? – njzk2

+0

在你的類中添加[getContactName](http://stackoverflow.com/questions/11451617/names-not-displayed-on-retrieving-sms-details?answertab=votes#tab-top)方法以及清單文件的權限然後傳遞聯繫電話號碼:'smsList.add(getContactName(c.getString(c.getColumnIndexOrThrow(「address」))。toString()));' –

回答

0

您是否在清單中添加了執行此操作所需的適當權限?即 需要爲 在你的清單對於操作,閱讀這些教程和下載源代碼可用,並嘗試 http://www.technotalkative.com/android-fetch-inbox-sms/ 希望它會成功....

+0

謝謝,我添加了所有必要的權限。我看到你的教程做我的應用程序代碼已經在做什麼。我需要在ListView中使用SMS的身體單獨獲取聯繫人姓名 – SaidAkh

0

後尋找更接近this例子實際上幫助我。

感謝大家

相關問題