react-native-ble-manager
Version:
A BLE module for react native.
39 lines (38 loc) • 1.94 kB
TypeScript
import { ConfigPlugin, AndroidConfig } from 'expo/config-plugins';
type InnerManifest = AndroidConfig.Manifest.AndroidManifest['manifest'];
type ManifestPermission = InnerManifest['permission'];
type ExtraTools = {
'tools:targetApi'?: string;
};
type ManifestUsesPermissionWithExtraTools = {
$: AndroidConfig.Manifest.ManifestUsesPermission['$'] & ExtraTools;
};
type AndroidManifest = {
manifest: InnerManifest & {
permission?: ManifestPermission;
'uses-permission'?: ManifestUsesPermissionWithExtraTools[];
'uses-permission-sdk-23'?: ManifestUsesPermissionWithExtraTools[];
'uses-feature'?: InnerManifest['uses-feature'];
};
};
export declare const withBLEAndroidManifest: ConfigPlugin<{
isBleRequired: boolean;
neverForLocation: boolean;
companionDeviceEnabled: boolean;
}>;
/**
* Add location permissions
* - 'android.permission.ACCESS_COARSE_LOCATION' for Android SDK 28 (Android 9) and lower
* - 'android.permission.ACCESS_FINE_LOCATION' for Android SDK 29 (Android 10) and higher.
* From Android SDK 31 (Android 12) it might not be required if BLE is not used for location.
*/
export declare function addLocationPermissionToManifest(androidManifest: AndroidManifest, neverForLocationSinceSdk31: boolean): AndroidManifest;
/**
* Add 'android.permission.BLUETOOTH_SCAN'.
* Required since Android SDK 31 (Android 12).
*/
export declare function addScanPermissionToManifest(androidManifest: AndroidManifest, neverForLocation: boolean): AndroidManifest;
export declare function addConnectPermissionToManifest(androidManifest: AndroidManifest, neverForLocation: boolean): AndroidManifest;
export declare function addCompanionPermissionToManifest(androidManifest: AndroidManifest): AndroidManifest;
export declare function addBLEHardwareFeatureToManifest(androidManifest: AndroidConfig.Manifest.AndroidManifest): AndroidConfig.Manifest.AndroidManifest;
export {};