2010-05-20 30 views
5

我查詢了「content // sms /」,我不知道某些字段的含義。他們是 -Android「content // sms /」內容提供者中的值的含義是什麼?

  1. 線程ID
  2. 協議
  3. 狀態
  4. Reply_Path_Present
  5. Service_Center

我檢查他們在logcat中發現的值是這些:

  • 線程ID:1至6等。
  • 協議:空/ 0
  • 狀態:-1
  • Reply_Path_Present:空/ 0
  • Service_Center:空

請告訴我是什麼這些價值的含義是。

回答

6

您可以使用Cursor.getColumnNames()來檢索任何內容提供者的列名,例如,

ContentResolver contentResolver = getContentResolver(); 
Cursor cursor = contentResolver.query(
    Uri.parse("content://sms/inbox"), null, null, null, null); 

String[] columnNames = cursor.getColumnNames(); 

對於content://sms/inbox這會產生_id,thread_id單,地址,人員,日期,協議,閱讀,狀態,類型,reply_path_present,主題,正文,service_center,鎖定我的手機上。您可以查看SmsProvider,但它不是公共API的一部分。

+0

非常感謝,約瑟夫。對不起我英語的弱點。我的意思是作爲一個例子,它在狀態'-1'的價值中意味着什麼。只有15個字段的內容//短信?它依賴於Android版本嗎?在哪裏以及如何學習像我們的共享鏈接SmsProvider這樣的開源代碼?其實,我在Android上工作了2個月。所以讓我知道更多。 – soclose 2010-05-20 09:39:33

+0

SMS內容提供者本身「不屬於公共API」。如果是這樣,你會在'android.provider'包中看到它的類。請參閱http://android-developers.blogspot.com/2010/05/be-careful-with-content-providers.html – CommonsWare 2010-05-20 13:06:16

+0

謝謝。讓我知道上面的5個字段用於什麼。 – soclose 2010-05-21 02:14:44

1

folling是確定特定光標所有列的方式。

StringBuffer info = new StringBuffer(); 
for(int i = 0; i < Cursor.getColumnCount(); i++) { 
    info.append("Column: " + Cursor.getColumnName(i) + "\n"); 
} 

打印出來,知道表中所有的列是什麼。

相關問題