getActivity / XXPermissions

Android 权限请求框架,已适配 Android 14
Apache License 2.0
5.44k stars 735 forks source link

[Bug]:TV系统,Android11无法申请存储权限 #259

Closed xiangsss closed 4 months ago

xiangsss commented 4 months ago

框架版本【必填】

18.5

问题描述【必填】

一般情况下,Android11后申请存储权限是跳转到系统页面进行授权的,但是多数电视系统是没有那个页面的,还是要用旧方式来申请存储权限,不能直接用跳转的方式申请的,否则直接申请失败,望修复这个问题!

复现步骤【必填】

    XXPermissions.with(context)
            .permission(Permission.MANAGE_EXTERNAL_STORAGE)
            .request(new OnPermissionCallback() {
                @Override
                public void onGranted(List<String> permissions, boolean all) {
                }
                @Override
                public void onDenied(List<String> permissions, boolean never) {

                }
            });

是否必现【必填】

项目 targetSdkVersion【必填】

33

出现问题的手机信息【必填】

TCL电视

出现问题的安卓版本【必填】

11

问题信息的来源渠道【必填】

用户反馈

是部分机型还是所有机型都会出现【必答】

部分

框架最新的版本是否存在这个问题【必答】

框架文档是否提及了该问题【必答】

是否已经查阅框架文档但还未能解决的【必答】

issue 列表中是否有人曾提过类似的问题【必答】

是否已经搜索过了 issue 列表但还未能解决的【必答】

是否可以通过 Demo 来复现该问题【必答】

提供报错堆栈

No response

提供截图或视频

No response

提供解决方案

No response

getActivity commented 4 months ago
image
getActivity commented 4 months ago

@xiangsss 小伙子,这个问题回答错误,问的不是出现问题的手机 CPU 架构,而是项目所使用的框架版本,请重新回答该问题。

xiangsss commented 4 months ago

@xiangsss 小伙子,这个问题回答错误,问的不是出现问题的手机 CPU 架构,而是项目所使用的框架版本,请重新回答该问题。

18.5

getActivity commented 4 months ago
image image
getActivity commented 4 months ago

@xiangsss 小伙子,框架内部已经做了大量的兜底措施,这种情况理论上是不会出现的,你确定以及肯定是 18.5 版本出现的问题?

xiangsss commented 4 months ago

@getActivity 确定是18.5,TCL这种智能电视是没有权限管理界面的,部分小米电视也一样!Android11,不能直接跳权限页面,要用ActivityCompat.requestPermissions()去申请才行!

目前我可以在onDenied中二次判断再次申请权限,但希望框架内部能搞定这问题!

getActivity commented 4 months ago

@getActivity 确定是18.5,TCL这种智能电视是没有权限管理界面的,部分小米电视也一样!Android11,不能直接跳权限页面,要用ActivityCompat.requestPermissions()去申请才行!

目前我可以在onDenied中二次判断再次申请权限,但希望框架内部能搞定这问题!

小伙子,我有几个问题

  1. MANAGE_EXTERNAL_STORAGE 是特殊权限,不能用 ActivityCompat.requestPermissions 来申请吧?

  2. 应用跳转不过去,具体是跳去了哪里了?框架做了很多层 Intent 是否存在的判断,我想知道框架最终跳去了哪个意图?你 debug 一下代码看看走了哪个?

    • ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION

    • ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION

    • ACTION_APPLICATION_DETAILS_SETTINGS

    • ACTION_APPLICATION_SETTINGS

    • ACTION_MANAGE_APPLICATIONS_SETTINGS

    • ACTION_SETTINGS

xiangsss commented 4 months ago

@getActivity 大佬,我这边也没有这类电视去调试,因为是有些用户是这设备!!但可以确定是的这类电视的Android11系统没有权限管理页面,不能用跳转的方式!!!我将targetSdkVersion降到28,用XXPermissions还是不行,用permissionx可以正常弹出如图! QQ拼音截图未命名

getActivity commented 4 months ago

@getActivity 大佬,我这边也没有这类电视去调试,因为是有些用户是这设备!!但可以确定是的这类电视的Android11系统没有权限管理页面,不能用跳转的方式!!!我将targetSdkVersion降到28,用XXPermissions还是不行,用permissionx可以正常弹出如图! QQ拼音截图未命名

小伙子,从你提供的这张截图来看,你申请的不是 MANAGE_EXTERNAL_STORAGE 权限吧?我记得这个权限的系统介绍,应该是 所有文件访问权限

xiangsss commented 4 months ago

@getActivity 我之前自己用(MANAGE_EXTERNAL_STORAGE)申请会报错的,用(READ_EXTERNAL_STORAGE、WRITE_EXTERNAL_STORAGE)的话只提示照片和媒体(也就是仅媒体权限),没有文件! 然后用permissionx可以照片+媒体+文件(也就是全部文件权限),至于他里面怎么实现的我就没去看!

xiangsss commented 4 months ago

我用华为手机(Android12)测试permissionx,targetSdkVersion降到28,,也和电视一样,不是直接跳转的方式,而是弹出权限授权窗口,是可以正常获得【所有文件】权限的!

getActivity commented 4 months ago

@xiangsss 小伙子,我问你 A,你回答我 B,你这样的答复我根本无法得出有效的判断。

xiangsss commented 4 months ago

@xiangsss 小伙子,我问你 A,你回答我 B,你这样的答复我根本无法得出有效的判断。

WRITE_EXTERNAL_STORAGE,,,原来如此,知道原因了,谢谢!不是框架的问题!

360060316 commented 1 month ago

我也遇到了,怎么解决,在安卓11的电视上把Permission.MANAGE_EXTERNAL_STORAGE改成Permission.Group.STORAGE?