What are React Native permissions?

Why Interviewers Ask This

Foundational questions like this help interviewers calibrate the rest of the interview. A confident, accurate answer signals that you have solid React Native basics — a prerequisite for any developer role.

Answer

Accessing sensitive device features (camera, location, contacts, notifications) requires explicit user permission. Both iOS and Android have permission systems, but they work differently. react-native-permissions is the standard library providing a unified API: import { check, request, PERMISSIONS, RESULTS } from "react-native-permissions"; // Check current status: const result = await check(PERMISSIONS.IOS.CAMERA); // "denied" | "granted" | "blocked" | "unavailable" | "limited" // Request permission: const result = await request(PERMISSIONS.IOS.CAMERA); if (result === RESULTS.GRANTED) { openCamera(); } else if (result === RESULTS.BLOCKED) { // User denied and selected "Don't ask again" // Open settings: Linking.openSettings(); }. Common permissions: PERMISSIONS.IOS.CAMERA, PERMISSIONS.IOS.PHOTO_LIBRARY, PERMISSIONS.IOS.LOCATION_WHEN_IN_USE, PERMISSIONS.IOS.MICROPHONE, PERMISSIONS.ANDROID.CAMERA, PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE, PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION. Info.plist (iOS): must add usage description strings — app will crash if missing: NSCameraUsageDescription = "We need camera access to take photos.". AndroidManifest.xml: declare permissions: <uses-permission android:name="android.permission.CAMERA" />. Runtime permissions (Android 6+): must also request at runtime. requestMultiple: await requestMultiple([PERMISSIONS.IOS.CAMERA, PERMISSIONS.IOS.MICROPHONE]). Always handle all permission states gracefully — guide users to Settings if blocked.

Common Mistake

Don't just define the term — demonstrate that you understand when to use it and when not to. Showing awareness of trade-offs is what separates average from strong React Native candidates.