Comments (5)
If anyone else stumbles here, here's a short explanation:
Currently Android requires you to request these permissions separately on the go. Having uses-permission in manifest is not enough. The camera roll picker component has not updated to include this feature.
I managed to get the component working without any problems by asking the permission myself in the component using camera roll component. I added "rollPermissionExists" to the parent component's state and only show the camera roll component if rollPermissionExists is true
Here's a few code snippets to help anyone struggling with this (also remember to add rollPermissionExists and default value to your state).
Add PermissionsAndroid to your component
import { PermissionsAndroid } from 'react-native';
Call this method when you are about to show the camera roll component
// The
async requestExternalStorageAccess() {
try {
const granted = await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.READ_EXTERNAL_STORAGE,
);
if (granted === PermissionsAndroid.RESULTS.GRANTED) {
this.setState({ rollPermissionExists: true })
} else {
this.setState({ rollPermissionExists: false })
}
} catch (err) {
console.warn(err);
}
}
Only show the picker if rollPermissionExists is true in render()
{ this.state.rollPermissionExists && <CameraRollPicker ... /> }
from react-native-camera-roll-picker.
You'll want to edit your AndroidManifest.xml
to include that permission (usually located ./android/app/src/main/AndroidManifest.xml
)
Add the line:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
from react-native-camera-roll-picker.
Any update on this? I have the same problem even with
added to the AndroidManifest.xml
from react-native-camera-roll-picker.
Same problem and I'm working on latest React native version 0.55.2 and I don't have any android or iOS folder
from react-native-camera-roll-picker.
agreed with @daose and if you are newly setup your project and cannot able to find android folder so run react-native eject
read more to eject iOS and android app from react app.
and make sure you added CAMERA permission too like this:-
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
in your /android/app/src/main/AndroidManifest.xml
file.
from react-native-camera-roll-picker.
Related Issues (20)
- How to restrict image picker to show images from specific gallery folder (DCIM/Camera)
- Need a changelog for v2 HOT 2
- Cannot read property of 'getPhotos' of underfined HOT 2
- Doesn't work for vidoes assetType
- Can we open camera from photo list page?
- Still get CameraRoll error even after reinstalling the package to newer version
- Callback function no longer returns the same data HOT 1
- Absolute Path not found HOT 1
- Null is not an object evaluating _nativeInterface.default.getPhotos
- Add support for groupTypes and groupName
- Images not rendering on Huawei phones
- Infinite loop on pixel phone
- Sealed this.state.selected array
- Update ListView to Flatlist HOT 3
- Need to show Image folders
- prop remove selectedMarker HOT 1
- Is it work now? HOT 2
- render() method in imageItem.js is calling N number of times
- Upgrade to latest react native HOT 1
- TypeError: Cannot read property 'getPhotos' of undefined HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-native-camera-roll-picker.