世博会缺少相机胶卷权限

Posted

技术标签:

【中文标题】世博会缺少相机胶卷权限【英文标题】:Missing camera roll permission in expo 【发布时间】:2019-01-28 15:44:28 【问题描述】:

我有“更改图像”按钮,我想使用相机胶卷来更改图像。 但我收到警告说我没有使用相机胶卷的权限。 如何检查是否授予权限?如果不是,我想请求许可。

这是我现在的代码:

    _pickImage = async () => 
        let result = await ImagePicker.launchImageLibraryAsync(
          allowsEditing: true,
          aspect: [4, 3],
        );
    
        console.log(result);
    
        if (!result.cancelled) 
          this.setState( image: result.uri );
        
    ;

这可能是一个非常愚蠢的问题,但我在这里有点困惑......

如果您需要更多信息,请发表评论。

谢谢!

【问题讨论】:

【参考方案1】:

如果您使用 Expo,您可以从 Expo 获取Permission。关注他们的文档,太棒了!

看起来像这样:

import * as Permissions from 'expo-permissions';

async componentDidMount() 
  const permission = await Permissions.getAsync(Permissions.CAMERA_ROLL);
  if (permission.status !== 'granted') 
      const newPermission = await Permissions.askAsync(Permissions.CAMERA_ROLL);
      if (newPermission.status === 'granted') 
        //its granted.
      
   else 
   ....your code
  

链接到Expo

我编辑了一些新代码。你可以完全使用askAsync,你决定。文档很有帮助!

【讨论】:

第一,你能不能编辑 "permissions.status" 到 "permission.status" ,那个 "s" 是多余的,第二,所以它检查正确,但是我如何请求许可,这样在您按“接受”或“拒绝”的地方出现警报? 我编辑了我的评论,也许对你有更多帮助 哦,它起作用了...我忘了给出正确答案。谢谢顺便说一句! 你真的需要打电话给getAsync,我想askAsync只会在没有提供权限的情况下询问。

以上是关于世博会缺少相机胶卷权限的主要内容,如果未能解决你的问题,请参考以下文章

世博会相机在 Android 设备上崩溃

世博会相机拍照崩溃的应用程序

世博会 - 创建日历缺少源

用世博相机拍照

世博相机没有显示相机看到的东西

重置世博会权限