android访问短信权限,Android 使用情况访问权限

在Android应用中,当请求访问短信权限和使用情况权限时,遇到一个问题:若用户未授权,直接点击返回后,应用无法正常显示列表数据。尝试在`onActivityResult`中检查权限并引导用户设置,但用户返回后仍显示加载状态。期望解决用户拒绝权限后的界面刷新问题。

问题描述

添加了使用情况访问权限,如果不开启权限就不让进去,但是发现如果不开启,直接点击返回的话,会再次进入页面但是下面的列表数据不出现

问题出现的环境背景及自己尝试过哪些方法

第一次出现(进软件的时候是可以的),但是点击返回之后就一直转圈

bVbvcgX?w=1080&h=2160

点击返回的时候,打了个这个

I/Timeline: Timeline: Activity_launch_request time:45233510 intent:Intent { act=android.settings.USAGE_ACCESS_SETTINGS }

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

private static final int MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS = 1101;

//判断应用是否有读取应用列表权限

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

if (!hasPermission()) {

startActivityForResult(

new Intent(android.provider.Settings.ACTION_USAGE_ACCESS_SETTINGS),

MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);

}

}

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

//若用户未开启权限,则引导用户开启“Apps with usage access”权限

try {

if (requestCode == MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS) {

if (!hasPermission()) {

startActivityForResult(new Intent(android.provider.Settings.ACTION_USAGE_ACCESS_SETTINGS), MY_PERMISSIONS_REQUEST_PACKAGE_USAGE_STATS);

}

}

} catch (Exception e) {

Log.i("e", "e:" + e);

}

}

//检测用户是否对本app开启了“Apps with usage access”权限

private boolean hasPermission() {

AppOpsManager appOpsM = (AppOpsManager)

getSystemService(Context.APP_OPS_SERVICE);

int mode = 0;

if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {

mode = appOpsM.checkOpNoThrow(AppOpsManager.OPSTR_GET_USAGE_STATS,

android.os.Process.myUid(), getPackageName());

}

return mode == AppOpsManager.MODE_ALLOWED;

}

你期待的结果是什么?实际看到的错误信息又是什么?

用户点击返回后,刷新能够显示正常。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值