1,软件第一次运行时,该方法会反馈true,无论是否选择了不再询问。
2,之后,当用户没有选择不再询问,该方法会返回false。
3,之后,当用户选择了不再询问,该方法会返回true。
所以逻辑需要变成:
初始化:第一次运行=true
if( 不是第一次运行 && !shouldShowRequestPermissionRationale(任意一个请求的权限)){
//用户选择了不再弹出,使用其他方法提醒用户到什么地方去设置
//TODO
return;
}
设置第一次运行=false;
//延迟并再次申请权限,可以用其他方法延迟或不延迟
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
activity.requestPermissions(permissions, requestCode);
}
}, 500);
本文详细介绍了应用程序中权限请求的逻辑处理方法。首次运行时,无论用户是否选择不再询问,都会收到提示。对于后续操作,若用户未选择不再询问则返回false,反之返回true。文章还提供了具体的实现代码。

457

被折叠的 条评论
为什么被折叠?



