提问人:Junaid Hassan Final 提问时间:12/17/2021 更新时间:3/8/2022 访问量:1240
无法在 flutter 中访问 android 版本 11 设备上的隐藏文件夹
Cannot access hidden folder on android version 11 device in flutter
问:
我正在制作一个显示 WhatsApp 状态的应用程序。WhatsApp 状态存储在 WhatsApp 文件夹中名为“.statuses”的隐藏文件中。但是当我尝试从 .statuses 文件夹中获取子目录和文件列表时,我得到一个空字符串。 此问题仅在 android 版本 11 设备上发生。对于未隐藏的文件夹和 android 版本低于 11 的设备,该代码运行良好。 我的代码附在下面:
final Directory _photoDir =
Directory(
'/storage/emulated/0/Android/media/com.whatsapp/WhatsApp/Media/.Statuses');
var imageList = _photoDir
.listSync()
.map((item) => item.path)
.where((item) => item.endsWith(".jpg"))
.toList(growable: false);
print(imageList);
答:
2赞
Junaid Hassan Final
12/19/2021
#1
当我们的“目标 SDK 版本”为 30 (Android 11) 或更高版本时,会出现此问题
我们必须在“android manifest”文件中包含此权限:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
如果你像我一样使用“permission_handler”包,你可以这样显示权限提示:
void requestStoragePermission() async {
Map<Permission, PermissionStatus> result = await [
Permission.storage,
Permission.manageExternalStorage,
].request();
//if permission is granted only then show home screen else permission error screen is already shown
if (result[Permission.storage] == PermissionStatus.granted &&
result[Permission.manageExternalStorage] == PermissionStatus.granted) {
setState(() {});
}
}
评论
0赞
skmak
2/11/2023
Google 可能不允许在 Play 商店中拥有权限的应用。MANAGE_EXTERNAL_STORAGE
评论