我正在制作一个显示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);发布于 2021-12-18 18:07:38
当我们的“目标SDK版本”是30 (Android 11)或更高时,就会出现这个问题。
我们必须将此权限包含在"android清单“文件中:
<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(() {});
}
}https://stackoverflow.com/questions/70393591
复制相似问题