mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
4b25a0aaa0
Summary: This PR adds all missing `dangerous` permissions in Android. I recently updated these for Android 12 and found many more missing dating all the way back to API 26. After this PR, it will be in sync with ALL dangerous permissions as of the recently released Android 12. https://developer.android.com/reference/android/Manifest.permission.html#ACCEPT_HANDOVER - 28 https://developer.android.com/reference/android/Manifest.permission.html#ACTIVITY_RECOGNITION - 29 https://developer.android.com/reference/android/Manifest.permission.html#ANSWER_PHONE_CALLS - 26 https://developer.android.com/reference/android/Manifest.permission.html#READ_PHONE_NUMBERS - 26 https://developer.android.com/reference/android/Manifest.permission.html#UWB_RANGING - 31 ## Changelog [Android] [Changed] - Add ACCEPT_HANDOVER, ACTIVITY_RECOGNITION, ANSWER_PHONE_CALLS, READ_PHONE_NUMBERS & UWB_RANGING to PermissionsAndroid Pull Request resolved: https://github.com/facebook/react-native/pull/32445 Test Plan: ``` PermissionsAndroid.ACCEPT_HANDOVER === 'android.permission.ACCEPT_HANDOVER' PermissionsAndroid.ACTIVITY_RECOGNITION === 'android.permission.ACTIVITY_RECOGNITION' PermissionsAndroid.ANSWER_PHONE_CALLS === 'android.permission.ANSWER_PHONE_CALLS' PermissionsAndroid.READ_PHONE_NUMBERS === 'android.permission.READ_PHONE_NUMBERS' PermissionsAndroid.UWB_RANGING === 'android.permission.UWB_RANGING' ``` Reviewed By: yungsters Differential Revision: D31793802 Pulled By: sshic fbshipit-source-id: 4a2e5086e92ccd223e74db451c4ccd87485ffb63
68 lines
2.4 KiB
JavaScript
68 lines
2.4 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @format
|
|
* @flow strict
|
|
*/
|
|
|
|
import type {TurboModule} from '../TurboModule/RCTExport';
|
|
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
|
// TODO: Use proper enum types.
|
|
export type PermissionStatus = string;
|
|
export type PermissionType = string;
|
|
/*
|
|
export type PermissionStatus = 'granted' | 'denied' | 'never_ask_again';
|
|
export type PermissionType =
|
|
| 'android.permission.READ_CALENDAR'
|
|
| 'android.permission.WRITE_CALENDAR'
|
|
| 'android.permission.CAMERA'
|
|
| 'android.permission.READ_CONTACTS'
|
|
| 'android.permission.WRITE_CONTACTS'
|
|
| 'android.permission.GET_ACCOUNTS'
|
|
| 'android.permission.ACCESS_BACKGROUND_LOCATION'
|
|
| 'android.permission.ACCESS_FINE_LOCATION'
|
|
| 'android.permission.ACCESS_COARSE_LOCATION'
|
|
| 'android.permission.RECORD_AUDIO'
|
|
| 'android.permission.READ_PHONE_STATE'
|
|
| 'android.permission.CALL_PHONE'
|
|
| 'android.permission.READ_CALL_LOG'
|
|
| 'android.permission.WRITE_CALL_LOG'
|
|
| 'com.android.voicemail.permission.ADD_VOICEMAIL'
|
|
| 'android.permission.USE_SIP'
|
|
| 'android.permission.PROCESS_OUTGOING_CALLS'
|
|
| 'android.permission.BODY_SENSORS'
|
|
| 'android.permission.SEND_SMS'
|
|
| 'android.permission.RECEIVE_SMS'
|
|
| 'android.permission.READ_SMS'
|
|
| 'android.permission.RECEIVE_WAP_PUSH'
|
|
| 'android.permission.RECEIVE_MMS'
|
|
| 'android.permission.READ_EXTERNAL_STORAGE'
|
|
| 'android.permission.WRITE_EXTERNAL_STORAGE'
|
|
| 'android.permission.BLUETOOTH_CONNECT'
|
|
| 'android.permission.BLUETOOTH_SCAN'
|
|
| 'android.permission.BLUETOOTH_ADVERTISE'
|
|
| 'android.permission.ACCESS_MEDIA_LOCATION'
|
|
| 'android.permission.ACCEPT_HANDOVER'
|
|
| 'android.permission.ACTIVITY_RECOGNITION'
|
|
| 'android.permission.ANSWER_PHONE_CALLS'
|
|
| 'android.permission.READ_PHONE_NUMBERS'
|
|
| 'android.permission.UWB_RANGING';
|
|
*/
|
|
|
|
export interface Spec extends TurboModule {
|
|
+checkPermission: (permission: PermissionType) => Promise<boolean>;
|
|
+requestPermission: (permission: PermissionType) => Promise<PermissionStatus>;
|
|
+shouldShowRequestPermissionRationale: (
|
|
permission: string,
|
|
) => Promise<boolean>;
|
|
+requestMultiplePermissions: (
|
|
permissions: Array<PermissionType>,
|
|
) => Promise<{[permission: PermissionType]: PermissionStatus, ...}>;
|
|
}
|
|
|
|
export default (TurboModuleRegistry.get<Spec>('PermissionsAndroid'): ?Spec);
|