Complete guide to permissions required by React Native Frame Capture.
The library automatically adds these permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />Required for screen capture. Request using:
const status = await FrameCapture.requestPermission();This opens the Android system dialog asking the user to allow screen recording.
Required for foreground service notification visibility:
import { Platform, PermissionsAndroid } from 'react-native';
if (Platform.OS === 'android' && Platform.Version >= 33) {
await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS
);
}- Check notification permission (Android 13+)
- Request MediaProjection permission using
requestPermission() - Start capture once permission is granted
import * as FrameCapture from 'react-native-frame-capture';
import { Platform, PermissionsAndroid } from 'react-native';
async function startCapturing() {
// 1. Request notification permission (Android 13+)
if (Platform.OS === 'android' && Platform.Version >= 33) {
await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS
);
}
// 2. Request screen capture permission
const permissionStatus = await FrameCapture.requestPermission();
if (permissionStatus === FrameCapture.PermissionStatus.GRANTED) {
// 3. Start capturing
await FrameCapture.startCapture({
capture: { interval: 1000 },
image: { quality: 80, format: 'jpeg' },
});
}
}