MediaLibrary.requestPermissionsAsync() 尽管在 Android 11 模拟器中已授予权限,但始终请求权限

问题描述 投票:0回答:1

我在 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() 始终请求权限,导致不必要的权限提示。

react-native expo android-emulator android-permissions media-library
1个回答
0
投票

expo版本是什么?我已经47岁了,同样的事情又发生了。 经过查找,好像升级到48就可以解决问题了。 (我还没试过) 请注意。

https://github.com/expo/expo/issues/15273#issuecomment-1545943670

© www.soinside.com 2019 - 2024. All rights reserved.