错误:未授予权限... react-native-image-picker

时间:2017-08-16 10:23:21

标签: android gradle react-native android-studio-2.3

我正在尝试使用

从我们的客户端应用中的内存中上传图像
  

react-native-image-picker@^0.26.4

执行以下示例代码后,我以意想不到的方式获得了响应。

ImagePicker.showImagePicker(options, response => {
  console.log("Response = ", response)

  if (response.didCancel) {
    console.log("User cancelled image picker")
  } else if (response.error) {
    console.log("ImagePicker Error: ", response.error)
  } else if (response.customButton) {
    console.log("User tapped custom button: ", response.customButton)
  } else {
    const source = { uri: response.uri }
    // RNGRP.getRealPathFromURI(response.uri).then(filePath => {
    //   uploadImageToS3(filePath, "dinesh")
    //   console.log(filePath)
    // })

    // You can also display  the image using data:
    // let source = { uri: 'data:image/jpeg;base64,' + response.data };

    this.setState({
      avatarSource: source
    })
  }

RESPONSE

  • 响应= {错误:“未授予权限”} 错误:“未授予权限” proto :对象 D:\ my_app \ index.js:124 ImagePicker错误:未授予权限

  • 有时候按下允许按钮按下应用程序会意外崩溃。

其他信息

  • React原生版:~0.46.1
  • 反应:16.0.0-alpha.12
  • 平台:[Android 5.1及以上版本]
  • 开发操作系统:[Windows 7 Professional]
  • 开发工具:[Android Studio版本2.3.2,Android SDK 23]

3 个答案:

答案 0 :(得分:9)

AndroidManifest.xml

中添加此代码
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

在Jaffar Raza和szskdgi

的建议之后编辑了这个

答案 1 :(得分:1)

将此代码添加到android / app / src / main / AndroidManifiedt.xml

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

答案 2 :(得分:1)

在AndroidManifyingt.xml中添加以下权限后

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

我们应该在处理功能之前检查权限。

例如:- 第 1 步(检查权限是否被授予)

const isCameraAuthorized = await permissions.checkPermission(
          PermissionType.CAMERA
        );
enter code here

第 2 步(请求权限)

 cameraPermissionStatus = await permissions.requestPermission(
            PermissionType.CAMERA
          );

然后我们对 WRITE_EXTERNAL_STORAGE 做同样的事情

cameraPermissionStatus = await permissions.requestPermission(
                PermissionType.WRITE_EXTERNAL_STORAGE 
              );
 const isCameraAuthorized = await permissions.checkPermission(
              PermissionType.WRITE_EXTERNAL_STORAGE 
            );