我想通过以下代码在React-native中访问手机摄像头的胶卷照片:
_handleButtonPress = () => {
CameraRoll.getPhotos({
first: 20,
assetType: 'Photos',
})
.then(r => {
this.setState({ photos: r.edges });
})
.catch((err) => {
alert(err)
});
};
但是我在警报中收到此错误:
无法获取照片所需的权限:read_external_storage权限
答案 0 :(得分:1)
如Google Docs中所述,如果设备运行的是Android 6.0(API级别23)或更高版本,并且应用的targetSdkVersion为23或更高版本,则不会通知用户任何应用安装时的权限。
因此,您必须要求用户在运行时授予危险权限
Here's危险权限列表。
您可以在React Native中启用以下权限
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
{
'title': 'Access Storage',
'message': 'Access Storage for the pictures'
}
)
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
console.log("You can use read from the storage")
} else {
console.log("Storage permission denied")
}
} catch (err) {
console.warn(err)
}
检查here以获得更多详细信息
答案 1 :(得分:0)
我在位于((Example / android / app / src / main / AndroidManifest.xml))的AndroidManifest中添加了此代码:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
然后我确认了android中的应用程序权限(并且我不知道如何在运行时进行操作)并解决了问题。