如何查找SMS的内容URI?

时间:2014-01-27 08:33:12

标签: android

有没有办法找出特定Android设备的SMS数据的内容URI? 例如,我能够找到包含this之后的所有邮件的数据库。

SMS DB位于./dbdata/databases/com.android.providers.telephony/mmssms.db

但是,我想知道内容URI而不是实际位置(例如contents:// sms)。这可能吗?如果没有,我如何从具有不同和未知的SMS内容URI的不同设备收集有关存储的SMS消息的信息?

例如,这些是某些供应商的内容URI:

  1. LG:content://com.lge.messageprovider/msg/inbox

  2. 三星:content://com.sec.mms.provider/message

  3. SAMSUNG Galaxy A:content://com.btb.sec.mms.provider/message

  4. 将军:content://sms/inbox

1 个答案:

答案 0 :(得分:0)

为什么不使用Contentresolver的uri解析器,特别是你知道内容字符串。 试试这个(与Cursor相关):

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

    //read all messages in your inbox
    do
    {
        String message = "";
        //read all data from all available columns for each message
        for (int i = 0; i < cursor.getColumnCount(); i++)
        {
            message += " " + cursor.getComulnName(i) + ": " + cursor.getString(i);
            //here do wathever you want with your message string
        }
    }
    while(cursor.moveToNext());

    cursor.close();

不要忘记为AndroidManifest.xml添加 READ_SMS 权限