最近公司开发一个项目,需要用到短信的功能,适配华为手机一切都正常,适配小米手机,遇到了两个棘手问题:
1.小米MIUI有个通知类短信权限,这个权限不知道如何申请,不知道如何判断是否具有该权限;
2.业务要求在引导页弹短信读取权限的弹窗让用户授权(这个是其他手机正常的流程),小米MIUI读取短信权限READ_SMS,动态申请后不弹窗,但是会走onRequestPermissionsResult的回调,而且回调值是PERMISSION_GRANTED,去权限设置页面查看该权限其实是询问状态;
第一个问题:解决办法是手动引导用户去设置页面开启,一般引导页只会走一次,这个权限是否开启目前没法判断,看过其他的例如来电类app, 有些权限也无法判断是否开启了,做法是弹窗让用户选择是否已开启。
小米跳权限设置页代码如下:
public static void goPermissionSettings(Activity activity) {
if (isMIUI()) {
Intent intent;
intent = new Intent("miui.intent.action.APP_PERM_EDITOR");
intent.setClassName("com.miui.securitycenter", "com.miui.permcenter.permissions.PermissionsEditorActivity");
intent.putExtra("extra_pkgname", activity.