Android 14 权限

  • 问题Android 14 按照视频播放类的应用 无法获取到权限。

原因是从 Android 13 开始,如果你的应用程序 targetSdk 指定到了 33 或以上,那么 READ_EXTRERNAL_STORGE 权限就完全失去了作用,申请它将不会产生任何效果。

与此相对应的,Google 新增了 READ_MEDIA_IMAGES、READ_MEDIA_VIDEO 和 READ_MEDIA_AUDIO 这三个运行时权限,分别用于管理手机的照片、视频和音频文件。以前只要申请 READ_EXTRERNAL_STORGE 权限就可以了,现在不行了,得按需申请。用户从而能够更加精细地了解你的应用到底申请了哪些媒体权限。

参考 https://www.cnblogs.com/joy99/p/17809113.html

解决方法: 手动从命令行去强制获取权限。

  • 手动赋值权限
  1. 对应用程序授予所有的运行时的权限

    $ adb install -g xxx.apk

  2. 对于某些权限,如"MANAGE_EXTERNAL_STORAGE"无法使用"-g"授予的,可以使用如下命令

    $ adb shell appops set --uid com.company.name MANAGE_EXTERNAL_STORAGE allow

  3. 还可以使用如下命令单独授予应用程序某一个权限,但是"MANAGE_EXTERNAL_STORAGE"无法授予权限

    $ adb shell pm grant com.comany.name android.permission.CAMERA

    ps -A | grep vlc

    cat /proc/pid/status

    通过上面的获取到每个user的uid。然后使用下面的命令赋值每个屏幕的vlc应用的权限。

    appops set --uid 1110125 MANAGE_EXTERNAL_STORAGE allow

    appops set --uid 1010125 MANAGE_EXTERNAL_STORAGE allow

相关推荐
FungLeo14 小时前
Flutter 吸顶分组列表实战:语义桶分组 + 点击头平滑滚动
android·flutter
阿巴斯甜15 小时前
Android 自定义权限
android
FungLeo15 小时前
Flutter 超长 StatefulWidget 拆分术:part of + extension on State 实战
android·flutter·dart
小王C语言17 小时前
MySQL 数据类型:数值类型、字符串类型、日期和时间类型、enum 和 set、find_in_set 查询
android·数据库·mysql
我命由我1234517 小时前
Android 控件 - CardView(快速实现圆角)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
码云数智-园园17 小时前
Android 全方位性能优化合集
android·性能优化
hunterandroid18 小时前
[Android 从零到一] Compose 动画实战:从 AnimatedVisibility 到复杂转场与手势联动
android
Knight_AL18 小时前
Lombok @Builder 踩坑:build() 前后对象类型不一样
android·java·开发语言
大黄说说18 小时前
Android 本地存储深度对比:SharedPreferences、MMKV、Room 数据库怎么选?
android·数据库
阿巴斯甜20 小时前
adb push .../AdapterService.apk 和 .../区别:
android