【发布时间】:2022-01-12 12:06:49
【问题描述】:
我有一个应用程序可以读取 pdf 文件,直到我在我的设备上安装了 android 12。
清单:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:requestLegacyExternalStorage="true">
...
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:remove="android:maxSdkVersion" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:remove="android:maxSdkVersion"
tools:ignore="ScopedStorage" />
权限:
private static final int REQUEST_PERMISSIONS = 20;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.permissionactivity_main);
// Permission einholen
PermissionActivity.super.requestAppPermissions(new
String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE}, R.string
.runtime_permissions_txt
, REQUEST_PERMISSIONS);
}
@Override
public void onPermissionsGranted(int requestCode) {
startActivity(new Intent(PermissionActivity.this, MainActivity.class));
finish();
}
还有代码:
File myFile2 = new File(Environment.getExternalStorageDirectory().getPath()+"/FploData/");
if (!myFile2.exists()) {myFile2.mkdir();} // works with Android 12
File lister = myFile2.getAbsoluteFile();
Log.e("file2: ", String.valueOf(lister));
File[] files = myFile2.listFiles();
Log.e("file length: ", String.valueOf(files.length));
files.length 返回 0 但目录不为空。代码运行良好,直到我将我的设备从 Android 11 更新到 12。我认为权限有问题。 有人可以帮忙吗?
【问题讨论】:
标签: java file directory android-external-storage android-12