我们有一个Android应用,我们正在尝试阅读手机中的所有可用信息。我们正在使用READ_SMS权限,但我们无法以这种方式读取服务消息。通过服务方式,我的意思是从不同公司获得的消息。例如,我的手机中有来自亚马逊和Paytm的消息,但我无法在加载消息时加载这些消息。我不明白这个问题。在加载SMS时是否有任何默认过滤器,或者代码有问题吗?
我使用以下代码加载所有短信:
private ArrayList load_sms(){
ContentResolver contentResolver = getContentResolver();
ArrayList<String> smsList = new ArrayList<>();
Cursor smsInboxCursor =
contentResolver.query(Uri.parse("content://sms/inbox"),
null,null,null,null);
int indexBody = smsInboxCursor.getColumnIndex("body");
int indexAddress = smsInboxCursor.getColumnIndex("address");
if(indexBody < 0 || !smsInboxCursor.moveToFirst())
return null;
do{
smsList.add("SMS From: " +
smsInboxCursor.getString(indexAddress) + " \nMessage: "
+ smsInboxCursor.getString(indexBody));
}while (smsInboxCursor.moveToNext());
return smsList;
}
答案 0 :(得分:1)
所以,解决方案很模糊。我有一部MI手机,发现MI阻止了服务信息。要查看这些短信&#39;我必须通过此链接中的设置手动授予权限:Can't read service messages in Redmi Note 3
当我在三星等其他手机上运行我的应用程序时,我能够查看所有消息。