有没有办法找出特定Android设备的SMS数据的内容URI? 例如,我能够找到包含this之后的所有邮件的数据库。
SMS DB位于./dbdata/databases/com.android.providers.telephony/mmssms.db
但是,我想知道内容URI而不是实际位置(例如contents:// sms)。这可能吗?如果没有,我如何从具有不同和未知的SMS内容URI的不同设备收集有关存储的SMS消息的信息?
例如,这些是某些供应商的内容URI:
LG:content://com.lge.messageprovider/msg/inbox
三星:content://com.sec.mms.provider/message
SAMSUNG Galaxy A:content://com.btb.sec.mms.provider/message
content://sms/inbox
答案 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 权限