Permissions (Camera, Location, Storage)

🔐 React Native Permissions (Camera, Location, Storage)

React Native অ্যাপে Camera, Location, Storage ব্যবহার করার আগে অবশ্যই Permission নিতে হয়। এই টিউটোরিয়ালে আমরা TypeScript ব্যবহার করে file-based ভাবে permission handle করা শিখবো।

📌 Permission কেন দরকার?

  • User privacy রক্ষা করার জন্য
  • Android & iOS security policy অনুসরণ করতে
  • Unauthorized access বন্ধ করতে

📦 Required Library Install

npm install react-native-permissions
npm install @react-native-community/geolocation

Android & iOS আলাদা permission file ব্যবহার করে।

📁 File Based Permission Structure

src/
 └── permissions/
      ├── camera.permission.ts
      ├── location.permission.ts
      └── storage.permission.ts

📸 Camera Permission (TypeScript)

import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
import { Platform } from 'react-native';

export const requestCameraPermission = async (): Promise => {
  const permission =
    Platform.OS === 'android'
      ? PERMISSIONS.ANDROID.CAMERA
      : PERMISSIONS.IOS.CAMERA;

  const result = await request(permission);

  return result === RESULTS.GRANTED;
};

✔ Permission Granted হলে true return করবে ❌ Denied হলে false

📍 Location Permission (TypeScript)

import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';
import { Platform } from 'react-native';

export const requestLocationPermission = async (): Promise => {
  const permission =
    Platform.OS === 'android'
      ? PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION
      : PERMISSIONS.IOS.LOCATION_WHEN_IN_USE;

  const result = await request(permission);
  return result === RESULTS.GRANTED;
};

📍 Map, GPS, Tracking অ্যাপের জন্য এই permission জরুরি

💾 Storage Permission (TypeScript)

import { request, PERMISSIONS, RESULTS } from 'react-native-permissions';

export const requestStoragePermission = async (): Promise => {
  const result = await request(
    PERMISSIONS.ANDROID.READ_EXTERNAL_STORAGE
  );

  return result === RESULTS.GRANTED;
};

💾 Image upload, file download এর জন্য দরকার হয়

▶ Permission ব্যবহার করা (Component)

import { Button, Alert } from 'react-native';
import { requestCameraPermission } from '../permissions/camera.permission';

const openCamera = async () => {
  const allowed = await requestCameraPermission();

  if (allowed) {
    Alert.alert('Camera Opened');
  } else {
    Alert.alert('Permission Denied');
  }
};

🖥 Output Explanation

  • প্রথমবার অ্যাপ চালু হলে permission popup আসবে
  • Allow দিলে → Camera / Location / Storage access পাবে
  • Deny দিলে → Feature কাজ করবে না

✅ Summary

  • Permission আলাদা file এ রাখা best practice
  • TypeScript safety বাড়ায়
  • Production app এর জন্য must-have topic
👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Permission কেন দরকার?

Device feature ব্যবহার করার অনুমতির জন্য।

2. Camera permission কখন লাগে?

ছবি তোলা বা স্ক্যান করার সময়।

3. Permission handle না করলে কী হয়?

App crash বা feature কাজ করে না।