Android 如何查找SMS的内容URI?
有没有办法为特定android设备的SMS数据找到一个内容URI? 例如,我能够找到包含以下所有消息的数据库 SMS DB位于Android 如何查找SMS的内容URI?,android,Android,有没有办法为特定android设备的SMS数据找到一个内容URI? 例如,我能够找到包含以下所有消息的数据库 SMS DB位于/dbdata/databases/com.android.providers.telephony/mmssms.DB 但是,我想知道内容URI,而不是实际位置(例如。contents://sms). 这可能吗?如果没有,我如何从具有不同和未知内容URI的不同设备收集有关存储的SMS消息的信息 例如,以下是一些供应商的内容URI: LG:content://com.lge
/dbdata/databases/com.android.providers.telephony/mmssms.DB
但是,我想知道内容URI,而不是实际位置(例如。contents://sms). 这可能吗?如果没有,我如何从具有不同和未知内容URI的不同设备收集有关存储的SMS消息的信息
例如,以下是一些供应商的内容URI:
content://com.lge.messageprovider/msg/inbox
content://com.sec.mms.provider/message
content://com.btb.sec.mms.provider/message
content://sms/inbox
为什么不使用
Contentresolver
的uri解析器,尤其是您知道内容字符串。
尝试此操作(与光标
结合使用):
Cursor Cursor=getContentResolver().query(Uri.parse()content://sms/inbox)、空、空、空、空);
cursor.moveTofirst();
//阅读收件箱中的所有邮件
做
{
字符串消息=”;
//从每条消息的所有可用列中读取所有数据
对于(int i=0;i
别忘了向您的AndroidManifest.xml添加阅读\u SMS权限询问的全部要点是SMS消息实际上并不位于
content://sms
适用于某些供应商。具体哪个供应商?这段代码在LG(GT540、P920)、三星(S2、S3 mini、Trend)和HTC ONE上运行得非常好
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();