您的位置:首页 > 房产 > 建筑 > 微信公众号排版编辑器_大连网站排名公司_万能搜索引擎网站_网络推广公司联系方式

微信公众号排版编辑器_大连网站排名公司_万能搜索引擎网站_网络推广公司联系方式

2024/12/21 20:27:28 来源:https://blog.csdn.net/u010074743/article/details/142327528  浏览:    关键词:微信公众号排版编辑器_大连网站排名公司_万能搜索引擎网站_网络推广公司联系方式
微信公众号排版编辑器_大连网站排名公司_万能搜索引擎网站_网络推广公司联系方式
Android14请求动态申请存储权限

Android14和Android15存储权限有增加多了选择部分,还是全部。一个小小的存储权限真的被它玩出了花来。本来Android13就将存储权限进行了3个细分,是图片,音频还是视频文件。

步骤一:AndroidManifest
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><!-- Android 13版本适配,细化存储权限 --><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /><uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /><uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /><!-- Android 14版本适配,部分允许还是全部允许--><uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
步骤二、引入Rxpermissions

你用其他请求库也行

 api 'com.jakewharton.rxbinding4:rxbinding:4.0.0'api 'com.github.tbruyelle:rxpermissions:0.12'
步骤三、定义请求方法
 // 联系:893151960void requestStoragePermission(Context mContext, PermissionListener permissionListener) {if (PermissionCheckUtil.checkPermissions(mContext, PermissionNewUtils.getImageMediaPermission(mContext))) {permissionListener.permission(true);} else {PermissionNewUtils.requestCombinedPermission((FragmentActivity) mContext, PermissionNewUtils.getImageMediaPermission(mContext), new Consumer<Permission>() {@Overridepublic void accept(Permission it) throws Throwable {if (it.granted) {permissionListener.permission(true);} else {boolean partGranted = false;// 部分同意if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE && mContext.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {if (ContextCompat.checkSelfPermission(mContext,READ_MEDIA_VISUAL_USER_SELECTED) == PackageManager.PERMISSION_GRANTED) {permissionListener.permission(true);partGranted = true;}}if (!partGranted) {permissionListener.permission(false);if (it.shouldShowRequestPermissionRationale) {//禁止,不做操作Toast.makeText(context, "禁止了权限", Toast.LENGTH_SHORT).show();} else {Toast.makeText(context, "永久禁止了权限", Toast.LENGTH_SHORT).show();//永久禁止
//                                DialogUtilsKT.okAndCancel(
//                                    mContext,
//                                    mContext.getString(alwaysContent),
//                                    mContext.getString(R.string.ok_go_setting),
//                                    title = mContext.getString(alwaysTitle)
//                                ) {
//                                    PermissionNewUtils.startAppSetting(mContext)
//                                }}}}}});}}

项目demo结构图
在这里插入图片描述有问题或者需要源码都可以私信我

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com