android studio 中的 android 10 权限无效
permissions not working for android 10 in android studio
目前,我正在尝试构建一个需要 3 个权限的应用程序:读取、写入和摄像头。
我为此使用了以下代码。
在主要Activity:
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 文件添加了权限。
在 <application
下的清单中添加 android:requestLegacyExternalStorage="true"
赞
<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">
目前,我正在尝试构建一个需要 3 个权限的应用程序:读取、写入和摄像头。 我为此使用了以下代码。
在主要Activity:
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 文件添加了权限。
在 <application
下的清单中添加 android:requestLegacyExternalStorage="true"
赞
<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">