Back to skills
SKILL.md
Add Expo Camera Android
ASecurityAdd expo-camera with Android-specific permission handling and CameraX-backed performance. Use when the user says 'add camera android', 'expo camera', 'qr scanner android'.
- 3 stars
- 0 votes
- 0 copies
- 0 views
- Added October 4, 2026
Security analysis
100/100Pro scans all 2 files and shows the line behind each finding
npx -y skills add khadinakbarlabs/expo-mobile-app-builder --skill add-expo-camera-android --agent claude-codeAre you the author of Add Expo Camera Android?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/khadinakbarlabs-add-expo-camera-android)---
name: "add-expo-camera-android"
description: "Add expo-camera with Android-specific permission handling and CameraX-backed performance. Use when the user says 'add camera android', 'expo camera', 'qr scanner android'."
---
# Add Expo Camera (Android)
CameraX-backed camera with permission handling.
## Install
```bash
npm exec --no -- expo install expo-camera
```
## Permissions in app.json
```json
{
"expo": {
"plugins": [
["expo-camera", { "cameraPermission": "Allow $(PRODUCT_NAME) to access your camera." }]
]
}
}
```
## Request runtime permission
```tsx
import { CameraView, useCameraPermissions } from 'expo-camera';
const [permission, requestPermission] = useCameraPermissions();
if (!permission) return null;
if (!permission.granted) return <Button title="Grant" onPress={requestPermission} />;
<CameraView style={{ flex: 1 }} facing="back" />
```
## QR / barcode scanning
```tsx
<CameraView
barcodeScannerSettings={{ barcodeTypes: ['qr', 'ean13'] }}
onBarcodeScanned={({ data }) => console.log(data)}
/>
```
## Photo capture
```tsx
const cam = useRef<CameraView>(null);
const photo = await cam.current?.takePictureAsync({ quality: 0.8 });
// photo.uri — local file path
```
## Video recording (Android 13+)
```tsx
const video = await cam.current?.recordAsync({ maxDuration: 60 });
```
## Android-specific gotchas
- "Camera not available" → emulator without webcam; enable webcam in AVD config
- Permission denied permanently → show settings deep link: `Linking.openSettings()`
- Recording requires `RECORD_AUDIO` permission too
- Some manufacturers (Xiaomi, OnePlus) restrict camera even with permission — check manufacturer-specific docs
## Pair with
- `add-expo-secure-store-keystore` if saving images encrypted
- Use `expo-image-picker` for gallery access instead of camera
Files in this skill
- SKILL.md
- agents/openai.yaml
Attribution
Comments
Loading comments…