Android fragment中 onRequestPermissionsResult不起作用

Android fragment中 onRequestPermissionsResult不起作用,第1张

概述上一篇Android动态获取权限中,在申请权限的时候需要onRequestPermissionsResult方法来判断时候开启权限,但是在Fragment使用过程中,需要获取摄像机权限出现这个方法不起作用的问题,找到两个解决方案。一、宿主activity需要重写在宿主activity中,一定要重写onRequestPermissionsRes

上一篇AndroID 动态获取权限中,在申请权限的时候需要onRequestPermissionsResult方法来判断时候开启权限,但是在Fragment使用过程中,需要获取摄像机权限出现这个方法不起作用的问题,找到两个解决方案。

一、宿主activity需要重写
在宿主activity中,一定要重写onRequestPermissionsResult并且带上下面这句话,不然fragment不回调onRequestPermissionsResult。

// Activity中@OverrIDepublic voID onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)  {       super.onRequestPermissionsResult(requestCode, permissions, grantResults);       // 获取到Activity下的Fragment       List<Fragment> fragments = getSupportFragmentManager().getFragments();       if (fragments == null)       {           return;       }       // 查找在Fragment中onRequestPermissionsResult方法并调用       for (Fragment fragment : fragments)       {           if (fragment != null)           {               // 这里就会调用我们Fragment中的onRequestPermissionsResult方法               fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);           }       }   }


申请权限的Fragment中重写onRequestPermissionsResult方法时,通过在Activity中遍历所有的Fragment中调用onRequestPermissionsResult方法,就是我们Fragment中重写的onRequestPermissionsResult方法:

// Fragment 中@OverrIDepublic voID onRequestPermissionsResult(final int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults){    // Todo 写我们自己的处理逻辑}


二、Fragment里面不使用activity申请权限
ActivityCompat.requestPermissions((AppCompatActivity)context, new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE)
一开始通过传递进来的context进行权限申请发现不能执行onRequestPermissionsResult,后面改成下面的直接申请,方法就能执行
 

requestPermissions(new String[]{Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE);


参考代码文章
————————————————
版权声明:本文为CSDN博主「JUN_LLLL」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35988274/article/details/100068049

总结

以上是内存溢出为你收集整理的Android fragment中 onRequestPermissionsResult不起作用全部内容,希望文章能够帮你解决Android fragment中 onRequestPermissionsResult不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1032011.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存