如何在MIUI 8+中以编程方式获取读取“服务短信”的权限

6
如何在MIUI 8+中程序化地获取阅读“服务短信”的权限。

如何在MIUI 8+中程序化地获取阅读“服务短信”的权限


运行时权限 https://stackoverflow.com/questions/38141523/directory-creation-not-working-in-marshmallow-android/38141778#38141778 - Sohail Zahid
1
我可以读取个人或手机的短信(我拥有该系统的Android权限)。但问题是我无法阅读服务短信(仅适用于MiUi 8.0+),例如:我从某些OTP服务(如Paytm)收到了短信,发送者是“PayTM”,它不是手机号码,因此它会进入短信/收件箱/通知或可能是短信/通知。如果我想阅读服务短信,我必须在应用程序->其他权限->服务短信->允许下允许服务短信权限。 - Sagar Makhija
1个回答

8
这将启动服务短信的意图。一旦用户允许访问服务短信,您就能够读取通知短信。
if (isMIUI()) {
            //this will launch the auto start screen where user can enable the permission for your app
      Intent localIntent = new Intent("miui.intent.action.APP_PERM_EDITOR");
                    localIntent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
      localIntent.putExtra("extra_pkgname", getActivity().getPackageName());
      startActivity(localIntent);
}


 public static boolean isMIUI() {
        String device = Build.MANUFACTURER;
        if (device.equals("Xiaomi")) {
            try {
                Properties prop = new Properties();
                prop.load(new FileInputStream(new File(Environment.getRootDirectory(), "build.prop")));
                return prop.getProperty("ro.miui.ui.version.code", null) != null
                        || prop.getProperty("ro.miui.ui.version.name", null) != null
                        || prop.getProperty("ro.miui.internal.storage", null) != null;
            } catch (IOException e) {
                e.printStackTrace();
            }

        }

         return false;
  }

注意:您不能通过编程方式获取权限,只允许MIUI中列入白名单的应用程序。例如-facebook messenger、WhatsApp、Flipkart等默认具有自启动选项。

1
我们能否检查用户是否已经授予权限?因为它会始终调用“localIntent”,即使用户已经授予权限,也会打开权限设置。有什么解决这个问题的想法吗? - Jay Patel
@JayPatel,我没有找到任何解决方案,但我可以提供一种方法,让你能够解决问题。你可以先阅读短信并查看是否能够读取服务短信,如果是,则无需再次询问,但如果不能,则可以再次询问。 - Sonu Kumar
嗯,听起来是个好的解决方案,但是我该如何辨别第一条短信是服务信息还是普通信息? - Jay Patel
检查短信地址是否为10位数字,如果是,则为普通短信,否则为服务短信。例如,如果是普通短信,则地址将为+917042XXXX73,如果是服务短信,则地址将为HPFPAXXA。 - Sonu Kumar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接