| 
				
			 | 
			
			
				@@ -12,6 +12,7 @@ The current supported permissions are: 
			 | 
		
	
		
			
			| 
				12
			 | 
			
				12
			 | 
			
			
				 - Bluetooth *(iOS only)* 
			 | 
		
	
		
			
			| 
				13
			 | 
			
				13
			 | 
			
			
				 - Push Notifications *(iOS only)* 
			 | 
		
	
		
			
			| 
				14
			 | 
			
				14
			 | 
			
			
				 - Background Refresh *(iOS only)* 
			 | 
		
	
		
			
			| 
				
			 | 
			
				15
			 | 
			
			
				+- Speech Recognition *(iOS only)* 
			 | 
		
	
		
			
			| 
				15
			 | 
			
				16
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				16
			 | 
			
				17
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				17
			 | 
			
				18
			 | 
			
			
				 | Version | React Native Support | 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -56,7 +57,7 @@ const Permissions = require('react-native-permissions'); 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				57
			 | 
			
			
				     Permissions.checkMultiplePermissions(['camera', 'photo']) 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				58
			 | 
			
			
				       .then(response => { 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				59
			 | 
			
			
				         //response is an object mapping type to permission 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				
			 | 
			
			
				-        this.setState({  
			 | 
		
	
		
			
			| 
				
			 | 
			
				60
			 | 
			
			
				+        this.setState({ 
			 | 
		
	
		
			
			| 
				60
			 | 
			
				61
			 | 
			
			
				           cameraPermission: response.camera, 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				62
			 | 
			
			
				           photoPermission: response.photo, 
			 | 
		
	
		
			
			| 
				62
			 | 
			
				63
			 | 
			
			
				         }) 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -64,7 +65,7 @@ const Permissions = require('react-native-permissions'); 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				65
			 | 
			
			
				   } 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				66
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				66
			 | 
			
				67
			 | 
			
			
				   // this is a common pattern when asking for permissions. 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				
			 | 
			
			
				-  // iOS only gives you once chance to show the permission dialog,  
			 | 
		
	
		
			
			| 
				
			 | 
			
				68
			 | 
			
			
				+  // iOS only gives you once chance to show the permission dialog, 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				69
			 | 
			
			
				   // after which the user needs to manually enable them from settings. 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				70
			 | 
			
			
				   // the idea here is to explain why we need access and determine if 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				71
			 | 
			
			
				   // the user will say no, so that we don't blow our one chance. 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -75,7 +76,7 @@ const Permissions = require('react-native-permissions'); 
			 | 
		
	
		
			
			| 
				75
			 | 
			
				76
			 | 
			
			
				       'We need access so you can set your profile pic', 
			 | 
		
	
		
			
			| 
				76
			 | 
			
				77
			 | 
			
			
				       [ 
			 | 
		
	
		
			
			| 
				77
			 | 
			
				78
			 | 
			
			
				         {text: 'No way', onPress: () => console.log('permission denied'), style: 'cancel'}, 
			 | 
		
	
		
			
			| 
				78
			 | 
			
				
			 | 
			
			
				-        this.state.photoPermission == 'undetermined'?  
			 | 
		
	
		
			
			| 
				
			 | 
			
				79
			 | 
			
			
				+        this.state.photoPermission == 'undetermined'? 
			 | 
		
	
		
			
			| 
				79
			 | 
			
				80
			 | 
			
			
				           {text: 'OK', onPress: this._requestPermission.bind(this)} 
			 | 
		
	
		
			
			| 
				80
			 | 
			
				81
			 | 
			
			
				           : {text: 'Open Settings', onPress: Permissions.openSettings} 
			 | 
		
	
		
			
			| 
				81
			 | 
			
				82
			 | 
			
			
				       ] 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -110,6 +111,7 @@ Promises resolve into one of these statuses 
			 | 
		
	
		
			
			| 
				110
			 | 
			
				111
			 | 
			
			
				 |`reminder`| ✔️ | ❌ | 
			 | 
		
	
		
			
			| 
				111
			 | 
			
				112
			 | 
			
			
				 |`notification`| ✔️ | ❌ | 
			 | 
		
	
		
			
			| 
				112
			 | 
			
				113
			 | 
			
			
				 |`backgroundRefresh`| ✔️ | ❌ | 
			 | 
		
	
		
			
			| 
				
			 | 
			
				114
			 | 
			
			
				+|`speechRecognition`| ✔️ | ❌ | 
			 | 
		
	
		
			
			| 
				113
			 | 
			
				115
			 | 
			
			
				 |`storage`| ❌️ | ✔ | 
			 | 
		
	
		
			
			| 
				114
			 | 
			
				116
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				115
			 | 
			
				117
			 | 
			
			
				 ###Methods 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -163,14 +165,15 @@ All required permissions also need to be included in the Manifest before they ca 
			 | 
		
	
		
			
			| 
				163
			 | 
			
				165
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				164
			 | 
			
				166
			 | 
			
			
				 Permissions are automatically accepted for targetSdkVersion < 23 but you can still use `getPermissionStatus` to check if the user has disabled them from Settings. 
			 | 
		
	
		
			
			| 
				165
			 | 
			
				167
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				166
			 | 
			
				
			 | 
			
			
				-Here's a map of types to Android system permissions names:   
			 | 
		
	
		
			
			| 
				167
			 | 
			
				
			 | 
			
			
				-`location` -> `android.permission.ACCESS_FINE_LOCATION`   
			 | 
		
	
		
			
			| 
				168
			 | 
			
				
			 | 
			
			
				-`camera` -> `android.permission.CAMERA`   
			 | 
		
	
		
			
			| 
				169
			 | 
			
				
			 | 
			
			
				-`microphone` -> `android.permission.RECORD_AUDIO`   
			 | 
		
	
		
			
			| 
				170
			 | 
			
				
			 | 
			
			
				-`photo` -> `android.permission.READ_EXTERNAL_STORAGE`   
			 | 
		
	
		
			
			| 
				171
			 | 
			
				
			 | 
			
			
				-`storage` -> `android.permission.READ_EXTERNAL_STORAGE`   
			 | 
		
	
		
			
			| 
				172
			 | 
			
				
			 | 
			
			
				-`contacts` -> `android.permission.READ_CONTACTS`   
			 | 
		
	
		
			
			| 
				173
			 | 
			
				
			 | 
			
			
				-`event` -> `android.permission.READ_CALENDAR`   
			 | 
		
	
		
			
			| 
				
			 | 
			
				168
			 | 
			
			
				+Here's a map of types to Android system permissions names: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				169
			 | 
			
			
				+`location` -> `android.permission.ACCESS_FINE_LOCATION` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				170
			 | 
			
			
				+`camera` -> `android.permission.CAMERA` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				171
			 | 
			
			
				+`microphone` -> `android.permission.RECORD_AUDIO` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				172
			 | 
			
			
				+`photo` -> `android.permission.READ_EXTERNAL_STORAGE` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				173
			 | 
			
			
				+`storage` -> `android.permission.READ_EXTERNAL_STORAGE` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				174
			 | 
			
			
				+`contacts` -> `android.permission.READ_CONTACTS` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				175
			 | 
			
			
				+`event` -> `android.permission.READ_CALENDAR` 
			 | 
		
	
		
			
			| 
				
			 | 
			
				176
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				174
			 | 
			
				177
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				175
			 | 
			
				178
			 | 
			
			
				 You can request write access to any of these types by also including the appropriate write permission in the Manifest. Read more here: https://developer.android.com/guide/topics/security/permissions.html#normal-dangerous 
			 | 
		
	
		
			
			| 
				176
			 | 
			
				179
			 | 
			
			
				  
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -181,7 +184,7 @@ npm install --save react-native-permissions 
			 | 
		
	
		
			
			| 
				181
			 | 
			
				184
			 | 
			
			
				 rnpm link 
			 | 
		
	
		
			
			| 
				182
			 | 
			
				185
			 | 
			
			
				 ```` 
			 | 
		
	
		
			
			| 
				183
			 | 
			
				186
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				184
			 | 
			
				
			 | 
			
			
				-###Or manualy linking    
			 | 
		
	
		
			
			| 
				
			 | 
			
				187
			 | 
			
			
				+###Or manualy linking 
			 | 
		
	
		
			
			| 
				185
			 | 
			
				188
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				186
			 | 
			
				189
			 | 
			
			
				 ####iOS 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				190
			 | 
			
			
				 * Run open node_modules/react-native-permissions 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -233,10 +236,10 @@ public class MainApplication extends Application implements ReactApplication { 
			 | 
		
	
		
			
			| 
				233
			 | 
			
				236
			 | 
			
			
				 ##Troubleshooting 
			 | 
		
	
		
			
			| 
				234
			 | 
			
				237
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				235
			 | 
			
				238
			 | 
			
			
				 #### Q: Android - `undefined is not a object (evaluating 'RNPermissions.requestPermissions')` 
			 | 
		
	
		
			
			| 
				236
			 | 
			
				
			 | 
			
			
				-A: `rnpm` may not have linked correctly. Follow the manual linking steps and make sure the library is linked  
			 | 
		
	
		
			
			| 
				
			 | 
			
				239
			 | 
			
			
				+A: `rnpm` may not have linked correctly. Follow the manual linking steps and make sure the library is linked 
			 | 
		
	
		
			
			| 
				237
			 | 
			
				240
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				238
			 | 
			
				241
			 | 
			
			
				 #### Q: iOS - app crashes as soon as I request permission 
			 | 
		
	
		
			
			| 
				239
			 | 
			
				242
			 | 
			
			
				 A: starting with xcode 8, you need to add permission descriptions. see iOS notes for more details. Thanks to @jesperlndk for discovering this. 
			 | 
		
	
		
			
			| 
				240
			 | 
			
				243
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				241
			 | 
			
				244
			 | 
			
			
				 #### Q: iOS - app crashes when I change permissions from settings 
			 | 
		
	
		
			
			| 
				242
			 | 
			
				
			 | 
			
			
				-A: This is normal. iOS restarts your app when your privacy settings change. Just google "ios crash permission change" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				245
			 | 
			
			
				+A: This is normal. iOS restarts your app when your privacy settings change. Just google "ios crash permission change" 
			 |