Closed mobilewhj closed 3 weeks ago
@mobilewhj 小伙子,我优化了这个问题,你可以下载上面的 aar 包,然后直接申请 READ_MEDIA_VIDEO
和 WRITE_EXTERNAL_STORAGE
试试看。
fun XXPermissions.videoRequest(manager: FragmentManager, callback: () -> Unit) { this .permission(Permission.CAMERA) .permission(Permission.READ_MEDIA_VIDEO) .permission(Permission.WRITE_EXTERNAL_STORAGE) .interceptor( PermissionInterceptor( BaseApplication.instance.getString(R.string.permissionvideo), manager = manager ) ) .request { , allGranted -> if (allGranted) { callback() } else { Toaster.show(R.string.permission_deny) } } }
使用上面的aar经过测试在我出问题的手机上没问题了。
@mobilewhj 小伙子,远程依赖已经更新,你可以换成远程依赖再试一下。
顺便问一下RECORD_AUDIO这个权限要做类似的WRITE_EXTERNAL_STORAGE操作吗?当前加上是报错的。
@mobilewhj 申请RECORD_AUDIO
权限为什么要带上 WRITE_EXTERNAL_STORAGE
权限?这两者没有关系吧?
你说的类似是什么意思?麦克风本身只有读取权限,没有提供写入权限。
我想的是录制音频文件写入磁盘,对于低版本手机需要好WRITE_EXTERNAL_STORAGE,可能我想的多了。
问题描述【必填】
今天做系统相机录像功能demo的时候,做了如下操作:
我只能使用uncheked()绕过框架限制才能不会崩溃。我尝试了几种写法:
这种会提示我 java.lang.IllegalStateException: Please register the android:requestLegacyExternalStorage="true" attribute in the AndroidManifest.xml file, otherwise it will cause incompatibility with the old version。
这种会提示我 java.lang.IllegalArgumentException: When targetSdkVersion >= 33 should use android.permission.READ_MEDIA_IMAGES, android.permission.READ_MEDIA_VIDEO, android.permission.READ_MEDIA_AUDIO instead of android.permission.READ_EXTERNAL_STORAGE。 如果不做版本判断,
只这么处理的话,会出现 java.io.FileNotFoundException: /storage/emulated/0/Movies/MyMovies/19866.mp4 (No such file or directory)没有权限的错误。我不知道怎么写是正确的,所以想咨询一下,对于读写的兼容应该如何处理呢。 下面是我xml中权限部分的声明:
我的版本: compileSdk = 33, minSdk = 24, targetSdk = 33 androidstudio版本: Android Studio Hedgehog | 2023.1.1 Patch 2 手机型号: vivo Y93 V1818T android版本为8.1.0
框架文档是否提及了该问题【必答】
否
是否已经查阅框架文档但还未能解决的【必答】
是
issue 列表中是否有人曾提过类似的问题【必答】
否
是否已经搜索过了 issue 列表但还未能解决的【必答】
是