我在 Android 11 模拟器中遇到 MediaLibrary.requestPermissionsAsync() 问题。即使用户已经授予了所请求的权限,此功能仍然会持续请求权限,从而导致不必要的权限提示。
我正在按如下方式处理权限:
const perm = await MediaLibrary.getPermissionsAsync();
if (!perm.granted) {
const perm = await MediaLibrary.requestPermissionsAsync();
}
try {
const asset = await MediaLibrary.createAssetAsync(uri);
const album = await MediaLibrary.getAlbumAsync('Download');
if (album == null) {
await MediaLibrary.createAlbumAsync('Download', asset, false);
} else {
await MediaLibrary.addAssetsToAlbumAsync([asset], album, false);
}
} catch (e) {
handleError(e);
}
期望:
如果用户已经授予所需的权限,MediaLibrary.requestPermissionsAsync() 不应再次提示权限。由于已授予权限,应用程序应继续执行提供的操作。
实际:
尽管用户已授予权限,但 MediaLibrary.requestPermissionsAsync() 始终请求权限,导致不必要的权限提示。
expo版本是什么?我已经47岁了,同样的事情又发生了。 经过查找,好像升级到48就可以解决问题了。 (我还没试过) 请注意。
https://github.com/expo/expo/issues/15273#issuecomment-1545943670