@@ -14,14 +14,14 @@ For Windows only builds 18362 and later are supported.
1414
1515| version | react-native version |
1616| ------- | -------------------- |
17- | 2 .0.0+ | 0.60.2 + |
17+ | 3 .0.0+ | 0.63.0 + |
1818
1919## Setup
2020
2121``` bash
22- $ npm install --save react-native-permissions
22+ $ npm install --save react-native-permissions@next
2323# --- or ---
24- $ yarn add react-native-permissions
24+ $ yarn add react-native-permissions@next
2525```
2626
2727### iOS
@@ -192,7 +192,7 @@ Open the project solution file from the `windows` folder. In the app project ope
192192
193193## 🆘 Manual linking
194194
195- Because this package targets React Native 0.60 .0+, you probably won't need to link it manually. Otherwise if it's not the case, follow these additional instructions. You also need to manual link the module on Windows when using React Native Windows prior to 0.63:
195+ Because this package targets React Native 0.63 .0+, you probably won't need to link it manually. Otherwise if it's not the case, follow these additional instructions. You also need to manual link the module on Windows when using React Native Windows prior to 0.63:
196196
197197<details >
198198 <summary ><b >👀 See manual linking instructions</b ></summary >
@@ -252,14 +252,14 @@ public class MainApplication extends Application implements ReactApplication {
252252
2532531 . In ` windows/myapp.sln ` add the ` RNCConfig ` project to your solution:
254254
255- - Open the solution in Visual Studio 2019
256- - Right-click Solution icon in Solution Explorer > Add > Existing Project
257- - Select ` node_modules\react-native-permissions\windows\RNPermissions\RNPermissions.vcxproj `
255+ - Open the solution in Visual Studio 2019
256+ - Right-click Solution icon in Solution Explorer > Add > Existing Project
257+ - Select ` node_modules\react-native-permissions\windows\RNPermissions\RNPermissions.vcxproj `
258258
2592592 . In ` windows/myapp/myapp.vcxproj ` ad a reference to ` RNPermissions ` to your main application project. From Visual Studio 2019:
260260
261- - Right-click main application project > Add > Reference...
262- - Check ` RNPermissions ` from Solution Projects.
261+ - Right-click main application project > Add > Reference...
262+ - Check ` RNPermissions ` from Solution Projects.
263263
2642643 . In ` pch.h ` add ` #include "winrt/RNPermissions.h" ` .
265265
@@ -295,6 +295,7 @@ As permissions are not handled in the same way on iOS and Android, this library
295295 ╔═════╗ ▼
296296 ║ YES ║ ┌───────────────────┐
297297 ╚═════╝ │ RESULTS.BLOCKED / │
298+ │ │ RESULTS.LIMITED / │
298299 │ │ RESULTS.GRANTED │
299300 ▼ └───────────────────┘
300301 ┌────────────────┐
@@ -425,11 +426,12 @@ As permissions are not handled in the same way on iOS and Android, this library
425426
426427### Supported permissions
427428
429+ <details >
430+ <summary ><b >Android permissions</b ></summary >
431+
428432``` js
429433import {PERMISSIONS } from ' react-native-permissions' ;
430434
431- // Android permissions
432-
433435PERMISSIONS .ANDROID .ACCEPT_HANDOVER ;
434436PERMISSIONS .ANDROID .ACCESS_BACKGROUND_LOCATION ;
435437PERMISSIONS .ANDROID .ACCESS_COARSE_LOCATION ;
@@ -459,8 +461,15 @@ PERMISSIONS.ANDROID.WRITE_CALENDAR;
459461PERMISSIONS .ANDROID .WRITE_CALL_LOG ;
460462PERMISSIONS .ANDROID .WRITE_CONTACTS ;
461463PERMISSIONS .ANDROID .WRITE_EXTERNAL_STORAGE ;
464+ ```
465+
466+ </details >
467+
468+ <details >
469+ <summary ><b >iOS permissions</b ></summary >
462470
463- // iOS permissions
471+ ``` js
472+ import {PERMISSIONS } from ' react-native-permissions' ;
464473
465474PERMISSIONS .IOS .APP_TRACKING_TRANSPARENCY ;
466475PERMISSIONS .IOS .BLUETOOTH_PERIPHERAL ;
@@ -479,40 +488,162 @@ PERMISSIONS.IOS.REMINDERS;
479488PERMISSIONS .IOS .SIRI ;
480489PERMISSIONS .IOS .SPEECH_RECOGNITION ;
481490PERMISSIONS .IOS .STOREKIT ;
491+ ```
492+
493+ </details >
494+
495+ <details >
496+ <summary ><b >Windows permissions</b ></summary >
482497
483- // Windows permissions
498+ ``` js
499+ import {PERMISSIONS } from ' react-native-permissions' ;
484500
501+ PERMISSIONS .WINDOWS .ACCESSORY_MANAGER ;
502+ PERMISSIONS .WINDOWS .ACTIVITY ;
503+ PERMISSIONS .WINDOWS .ALLOW_ELEVATION ;
504+ PERMISSIONS .WINDOWS .ALL_APP_MODS ;
505+ PERMISSIONS .WINDOWS .ALL_JOYN ;
485506PERMISSIONS .WINDOWS .APPOINTMENTS ;
507+ PERMISSIONS .WINDOWS .APPOINTMENTS_SYSTEM ;
508+ PERMISSIONS .WINDOWS .APP_BROADCAST_SERVICES ;
509+ PERMISSIONS .WINDOWS .APP_CAPTURE_SERVICES ;
510+ PERMISSIONS .WINDOWS .APP_CAPTURE_SETTINGS ;
511+ PERMISSIONS .WINDOWS .APP_DIAGNOSTICS ;
512+ PERMISSIONS .WINDOWS .APP_LICENSING ;
513+ PERMISSIONS .WINDOWS .AUDIO_DEVICE_CONFIGURATION ;
514+ PERMISSIONS .WINDOWS .BACKGROUND_MEDIA_PLAYBACK ;
515+ PERMISSIONS .WINDOWS .BACKGROUND_MEDIA_RECORDING ;
516+ PERMISSIONS .WINDOWS .BACKGROUND_SPATIAL_PERCEPTION ;
517+ PERMISSIONS .WINDOWS .BACKGROUND_VOIP ;
486518PERMISSIONS .WINDOWS .BLOCKED_CHAT_MESSAGES ;
487- PERMISSIONS .WINDOWS .BLUETOOTH_GATT ;
488- PERMISSIONS .WINDOWS .BLUETOOTH_RFCOMM ;
489- PERMISSIONS .WINDOWS .CHAT ;
519+ PERMISSIONS .WINDOWS .BLUETOOTH ;
520+ PERMISSIONS .WINDOWS .BROAD_FILE_SYSTEM_ACCESS ;
521+ PERMISSIONS .WINDOWS .CAMERA_PROCESSING_EXTENSION ;
522+ PERMISSIONS .WINDOWS .CELLULAR_DEVICE_CONTROL ;
523+ PERMISSIONS .WINDOWS .CELLULAR_DEVICE_IDENTITY ;
524+ PERMISSIONS .WINDOWS .CELLULAR_MESSAGING ;
525+ PERMISSIONS .WINDOWS .CHAT_SYSTEM ;
490526PERMISSIONS .WINDOWS .CODE_GENERATION ;
527+ PERMISSIONS .WINDOWS .CONFIRM_APP_CLOSE ;
491528PERMISSIONS .WINDOWS .CONTACTS ;
529+ PERMISSIONS .WINDOWS .CONTACTS_SYSTEM ;
530+ PERMISSIONS .WINDOWS .CORTANA_PERMISSIONS ;
531+ PERMISSIONS .WINDOWS .CORTANA_SPEECH_ACCESSORY ;
532+ PERMISSIONS .WINDOWS .CUSTOM_INSTALL_ACTIONS ;
533+ PERMISSIONS .WINDOWS .DEVELOPMENT_MODE_NETWORK ;
534+ PERMISSIONS .WINDOWS .DEVICE_MANAGEMENT_DM_ACCOUNT ;
535+ PERMISSIONS .WINDOWS .DEVICE_MANAGEMENT_EMAIL_ACCOUNT ;
536+ PERMISSIONS .WINDOWS .DEVICE_MANAGEMENT_FOUNDATION ;
537+ PERMISSIONS .WINDOWS .DEVICE_MANAGEMENT_WAP_SECURITY_POLICIES ;
538+ PERMISSIONS .WINDOWS .DEVICE_PORTAL_PROVIDER ;
539+ PERMISSIONS .WINDOWS .DEVICE_UNLOCK ;
492540PERMISSIONS .WINDOWS .DOCUMENTS_LIBRARY ;
541+ PERMISSIONS .WINDOWS .DUAL_SIM_TILES ;
542+ PERMISSIONS .WINDOWS .EMAIL ;
543+ PERMISSIONS .WINDOWS .EMAIL_SYSTEM ;
493544PERMISSIONS .WINDOWS .ENTERPRISE_AUTHENTICATION ;
494- PERMISSIONS .WINDOWS .HUMAN_INTERFACE_DEVICE ;
545+ PERMISSIONS .WINDOWS .ENTERPRISE_CLOUD_S_S_O ;
546+ PERMISSIONS .WINDOWS .ENTERPRISE_DATA_POLICY ;
547+ PERMISSIONS .WINDOWS .ENTERPRISE_DEVICE_LOCKDOWN ;
548+ PERMISSIONS .WINDOWS .EXPANDED_RESOURCES ;
549+ PERMISSIONS .WINDOWS .EXTENDED_BACKGROUND_TASK_TIME ;
550+ PERMISSIONS .WINDOWS .EXTENDED_EXECUTION_BACKGROUND_AUDIO ;
551+ PERMISSIONS .WINDOWS .EXTENDED_EXECUTION_CRITICAL ;
552+ PERMISSIONS .WINDOWS .EXTENDED_EXECUTION_UNCONSTRAINED ;
553+ PERMISSIONS .WINDOWS .FIRST_SIGN_IN_SETTINGS ;
554+ PERMISSIONS .WINDOWS .GAME_BAR_SERVICES ;
555+ PERMISSIONS .WINDOWS .GAME_LIST ;
556+ PERMISSIONS .WINDOWS .GAME_MONITOR ;
557+ PERMISSIONS .WINDOWS .GAZE_INPUT ;
558+ PERMISSIONS .WINDOWS .GLOBAL_MEDIA_CONTROL ;
559+ PERMISSIONS .WINDOWS .HUMANINTERFACEDEVICE ;
560+ PERMISSIONS .WINDOWS .INPUT_FOREGROUND_OBSERVATION ;
561+ PERMISSIONS .WINDOWS .INPUT_INJECTION_BROKERED ;
562+ PERMISSIONS .WINDOWS .INPUT_OBSERVATION ;
563+ PERMISSIONS .WINDOWS .INPUT_SUPPRESSION ;
495564PERMISSIONS .WINDOWS .INTERNET_CLIENT ;
496565PERMISSIONS .WINDOWS .INTERNET_CLIENT_SERVER ;
566+ PERMISSIONS .WINDOWS .INTEROP_SERVICES ;
567+ PERMISSIONS .WINDOWS .IOT ;
568+ PERMISSIONS .WINDOWS .LOCAL_SYSTEM_SERVICES ;
497569PERMISSIONS .WINDOWS .LOCATION ;
570+ PERMISSIONS .WINDOWS .LOCATION_HISTORY ;
571+ PERMISSIONS .WINDOWS .LOCATION_SYSTEM ;
572+ PERMISSIONS .WINDOWS .LOW_LEVEL ;
573+ PERMISSIONS .WINDOWS .LOW_LEVEL_DEVICES ;
498574PERMISSIONS .WINDOWS .MICROPHONE ;
575+ PERMISSIONS .WINDOWS .MOBILE ;
576+ PERMISSIONS .WINDOWS .MODIFIABLE_APP ;
499577PERMISSIONS .WINDOWS .MUSIC_LIBRARY ;
500- PERMISSIONS .WINDOWS .OBJECTS_3D ;
578+ PERMISSIONS .WINDOWS .NETWORKING_VPN_PROVIDER ;
579+ PERMISSIONS .WINDOWS .NETWORK_CONNECTION_MANAGER_PROVISIONING ;
580+ PERMISSIONS .WINDOWS .NETWORK_DATA_PLAN_PROVISIONING ;
581+ PERMISSIONS .WINDOWS .NETWORK_DATA_USAGE_MANAGEMENT ;
582+ PERMISSIONS .WINDOWS .OEM_DEPLOYMENT ;
583+ PERMISSIONS .WINDOWS .OEM_PUBLIC_DIRECTORY ;
584+ PERMISSIONS .WINDOWS .ONE_PROCESS_VOIP ;
585+ PERMISSIONS .WINDOWS .OPTICAL ;
586+ PERMISSIONS .WINDOWS .PACKAGED_SERVICES ;
587+ PERMISSIONS .WINDOWS .PACKAGES_SERVICES ;
588+ PERMISSIONS .WINDOWS .PACKAGE_MANAGEMENT ;
589+ PERMISSIONS .WINDOWS .PACKAGE_POLICY_SYSTEM ;
590+ PERMISSIONS .WINDOWS .PACKAGE_QUERY ;
591+ PERMISSIONS .WINDOWS .PACKAGE_WRITE_REDIRECTION_COMPATIBILITY_SHIM ;
501592PERMISSIONS .WINDOWS .PHONE_CALL ;
502- PERMISSIONS .WINDOWS .PHOTO_LIBRARY ;
593+ PERMISSIONS .WINDOWS .PHONE_CALL_HISTORY ;
594+ PERMISSIONS .WINDOWS .PHONE_CALL_HISTORY_SYSTEM ;
595+ PERMISSIONS .WINDOWS .PHONE_LINE_TRANSPORT_MANAGEMENT ;
596+ PERMISSIONS .WINDOWS .PICTURES_LIBRARY ;
503597PERMISSIONS .WINDOWS .POINT_OF_SERVICE ;
598+ PERMISSIONS .WINDOWS .PREVIEW_INK_WORKSPACE ;
599+ PERMISSIONS .WINDOWS .PREVIEW_PEN_WORKSPACE ;
600+ PERMISSIONS .WINDOWS .PREVIEW_STORE ;
601+ PERMISSIONS .WINDOWS .PREVIEW_UI_COMPOSITION ;
504602PERMISSIONS .WINDOWS .PRIVATE_NETWORK_CLIENT_SERVER ;
603+ PERMISSIONS .WINDOWS .PROTECTED_APP ;
505604PERMISSIONS .WINDOWS .PROXIMITY ;
605+ PERMISSIONS .WINDOWS .RADIOS ;
506606PERMISSIONS .WINDOWS .RECORDED_CALLS_FOLDER ;
607+ PERMISSIONS .WINDOWS .REMOTE_PASSPORT_AUTHENTICATION ;
608+ PERMISSIONS .WINDOWS .REMOTE_SYSTEM ;
507609PERMISSIONS .WINDOWS .REMOVABLE_STORAGE ;
610+ PERMISSIONS .WINDOWS .RESCAP ;
611+ PERMISSIONS .WINDOWS .RUN_FULL_TRUST ;
612+ PERMISSIONS .WINDOWS .SCREEN_DUPLICATION ;
613+ PERMISSIONS .WINDOWS .SECONDARY_AUTHENTICATION_FACTOR ;
614+ PERMISSIONS .WINDOWS .SECURE_ASSESSMENT ;
615+ PERMISSIONS .WINDOWS .SERIALCOMMUNICATION ;
508616PERMISSIONS .WINDOWS .SHARED_USER_CERTIFICATES ;
617+ PERMISSIONS .WINDOWS .SLAPI_QUERY_LICENSE_VALUE ;
618+ PERMISSIONS .WINDOWS .SMBIOS ;
619+ PERMISSIONS .WINDOWS .SMS_SEND ;
620+ PERMISSIONS .WINDOWS .SPATIAL_PERCEPTION ;
621+ PERMISSIONS .WINDOWS .START_SCREEN_MANAGEMENT ;
622+ PERMISSIONS .WINDOWS .STORE_LICENSE_MANAGEMENT ;
623+ PERMISSIONS .WINDOWS .SYSTEM_MANAGEMENT ;
624+ PERMISSIONS .WINDOWS .TARGETED_CONTENT ;
625+ PERMISSIONS .WINDOWS .TEAM_EDITION_DEVICE_CREDENTIAL ;
626+ PERMISSIONS .WINDOWS .TEAM_EDITION_EXPERIENCE ;
627+ PERMISSIONS .WINDOWS .TEAM_EDITION_VIEW ;
628+ PERMISSIONS .WINDOWS .UAP ;
629+ PERMISSIONS .WINDOWS .UI_AUTOMATION ;
630+ PERMISSIONS .WINDOWS .UNVIRTUALIZED_RESOURCES ;
509631PERMISSIONS .WINDOWS .USB ;
510632PERMISSIONS .WINDOWS .USER_ACCOUNT_INFORMATION ;
633+ PERMISSIONS .WINDOWS .USER_DATA_ACCOUNTS_PROVIDER ;
634+ PERMISSIONS .WINDOWS .USER_DATA_SYSTEM ;
635+ PERMISSIONS .WINDOWS .USER_PRINCIPAL_NAME ;
636+ PERMISSIONS .WINDOWS .USER_SYSTEM_ID ;
511637PERMISSIONS .WINDOWS .VIDEOS_LIBRARY ;
512638PERMISSIONS .WINDOWS .VOIP_CALL ;
639+ PERMISSIONS .WINDOWS .WALLET_SYSTEM ;
513640PERMISSIONS .WINDOWS .WEBCAM ;
641+ PERMISSIONS .WINDOWS .WIFI_CONTROL ;
642+ PERMISSIONS .WINDOWS .XBOX_ACCESSORY_MANAGEMENT ;
514643```
515644
645+ </details >
646+
516647### Permissions statuses
517648
518649Permission checks and requests resolve into one of these statuses:
@@ -729,6 +860,24 @@ openSettings().catch(() => console.warn('cannot open settings'));
729860
730861---
731862
863+ #### openLimitedPhotoLibraryPicker (iOS 14+)
864+
865+ Open a picker to update the photo selection when ` PhotoLibrary ` permission is ` limited ` . This will reject if unsupported or if full permission is already ` granted ` .
866+
867+ ``` ts
868+ function openLimitedPhotoLibraryPicker(): Promise <void >;
869+ ```
870+
871+ ``` js
872+ import {openLimitedPhotoLibraryPicker } from ' react-native-permissions' ;
873+
874+ openLimitedPhotoLibraryPicker ().catch (() => {
875+ console .warn (' Cannot open photo library picker' );
876+ });
877+ ```
878+
879+ ---
880+
732881#### checkLocationAccuracy (iOS 14+)
733882
734883When ` LocationAlways ` or ` LocationWhenInUse ` is ` granted ` , allow checking if the user share his precise location.
@@ -771,24 +920,6 @@ requestLocationAccuracy({purposeKey: 'YOUR-PURPOSE-KEY'})
771920 .catch (() => console .warn (' Cannot request location accuracy' ));
772921```
773922
774- ---
775-
776- #### openLimitedPhotoLibraryPicker (iOS 14+)
777-
778- Open a picker to update the photo selection when ` PhotoLibrary ` permission is ` limited ` . This will reject if unsupported or if full permission is already ` granted ` .
779-
780- ``` ts
781- function openLimitedPhotoLibraryPicker(): Promise <void >;
782- ```
783-
784- ``` js
785- import {openLimitedPhotoLibraryPicker } from ' react-native-permissions' ;
786-
787- openLimitedPhotoLibraryPicker ().catch (() => {
788- console .warn (' Cannot open photo library picker' );
789- });
790- ```
791-
792923## Migrating from v1.x.x
793924
794925If you are currently using the version ` 1.x.x ` and would like to switch to ` v2.x.x ` , the only thing you really need to know is that it's now required to select the wanted permission ** per platform** .
0 commit comments