wht525097920
wht525097920
采纳率83.3%
2019-06-11 20:00 阅读 667

关于android动态请求权限的问题?

代码:

if (ActivityCompat.checkSelfPermission(sActivity, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                ActivityCompat.requestPermissions(sActivity, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_SAVE_PHOTO);

 }

回调:

public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    }

回调的grantResults参数里面永远是-1,而且没有弹出提示请求权限的窗口,请问是为什么?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • 已采纳
    wht525097920 wht525097920 2019-06-17 14:29

    原因是在某个aar包中写了android:maxSdkVersion="18",导致部分机型获取不到权限

    点赞 评论 复制链接分享
  • zheng_weichao 郑卫超 2019-06-12 10:30

    首先明确一点:**动态请求权限,在Activity和Fragment中的代码是不一样的。**

    看你的代码,应该是在Fragment中申请的权限,那么就不要使用ActivityCompat.requestPermissions, 直接使用Fragment的requestPermissions方法,否则会回调到Activity的 onRequestPermissionsResult

    点赞 评论 复制链接分享
  • qq_32508519 Jimmy_buer 2019-06-12 14:37

    ActivityCompat.requestPermissions(this, permissions, 321);
    onRequestPermissionsResult中:
    if (grantResults[0] != PackageManager.PERMISSION_GRANTED) 的时候就代表申请成功了.

    点赞 评论 复制链接分享

相关推荐