无法使用READ_SMS权限读取服务消息android

时间:2018-02-06 09:06:18

标签: android permissions sms android-contentprovider

我们有一个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;
}

1 个答案:

答案 0 :(得分:1)

所以,解决方案很模糊。我有一部MI手机,发现MI阻止了服务信息。要查看这些短信&#39;我必须通过此链接中的设置手动授予权限:Can't read service messages in Redmi Note 3

当我在三星等其他手机上运行我的应用程序时,我能够查看所有消息。