2016-09-28 80 views
2

我正在通過此URI獲取所有電話的短信 - Telephony.Sms.Inbox.CONTENT_URI如何獲取設備上每條短信的電話號碼?

TextBasedSmsColumns包含投影的所有列。

光標是建立這樣的:

cursor = getContentResolver().query(Telephony.Sms.Inbox.CONTENT_URI, 
         new String[] { BaseColumns._ID, TextBasedSmsColumns.ADDRESS }, 
         null, null, null); 

有一個TextBasedSmsColumns.ADDRESS列包含電話號碼或聯繫人姓名。那麼我怎樣才能總是獲得短信的電話號碼?我應該使用另一種方法獲取所有短信嗎?

回答

0

這就是我得到的。

Uri uriSMSURI = Uri.parse("content://sms/inbox"); 
Cursor cur = getContentResolver().query(uriSMSURI, null, null, null, null); 
if (cur != null) { 
     while (cur.moveToNext()) { 
      String body = cur.getString(cur.getColumnIndexOrThrow("body")); 
      //Here you will get all PhoneNumbers 
      String phoneNumber = cur.getString(cur.getColumnIndexOrThrow("address")); 
     } 
     cur.close(); 
} 
+0

這正是我所做的,如果您重命名手機上的聯繫人,那麼「地址」將返回一個不是電話號碼的名稱。此外,您不應使用硬編碼的字符串,例如使用Telephony.Sms.Inbox.CONTENT_URI而不是「content:// sms/inbox」 –

相關問題