android - 权限不适用于 android studio 中的 android 10
问题描述
目前,我正在尝试构建一个需要 3 个权限的应用程序:读取、写入和摄像头。我为此使用以下代码。
在主要活动中:
String[] permissions = new String[]{
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
};
private int PERMISSION_REQUEST_CODE = 10
public boolean hasPermissions(Context context, String[] permissions) {
if (context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
在onCreate()方法中,我使用以下内容:
if (!hasPermissions(this, permissions)) {
ActivityCompat.requestPermissions(this, permissions, PERMISSION_REQUEST_CODE);
}
下面是onRequestPermissionResult()方法的代码:
@SuppressLint("MissingPermission")
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == PERMISSION_REQUEST_CODE) {
if (!hasPermissions(this, permissions)) {
finish();
} else {
view_camera.bindToLifecycle(lifecycleOwner);
view_camera.setPinchToZoomEnabled(true);
view_camera.setFocusable(true);
}
}
}
在 android 9 之前一切正常,但在 android 10 中,它无法从存储中读取数据,也无法存储它。
有谁知道这背后的原因?
我也将权限添加到 Manifest 文件中。
解决方案
android:requestLegacyExternalStorage="true"
在清单下添加<application
喜欢
<application
android:requestLegacyExternalStorage="true"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
推荐阅读
- python - 迭代numpy数组,np.ndindex弄得一团糟
- sum - 根据 Power BI 中模型的不同列求和
- r - Shiny App 中的详细信息/摘要手风琴未在 Google Chrome 中显示下拉箭头?
- flutter - 断言失败:第 42 行第 16 行:'path.isNotEmpty':不正确。扑
- javascript - 在 Shopware 6 中覆盖现有的插件 JS
- selenium - 用户代理和检测
- c# - 如何编译 C 字符串并执行它 C#
- node.js - 如何绕过CORS?
- css - 如何垂直对齐诗歌中不完整的诗句(戏剧风格)?
- openedge - 使用单个 .p 文件连接到多个进度数据库