موبائل ایپس میں Camera Permission — یہ کیا ہے، رسائی کی اقسام اور یہ کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-05-21 مطالعے کا وقت: 8 منٹ

Camera Permission ایک اجازت ہے جو موبائل ایپ صارف سے ڈیوائس کیمرے تک رسائی کے لیے درخواست کرتی ہے۔ اس کے بغیر، ایپ تصاویر نہیں لے سکتی، QR کوڈ اسکین نہیں کر سکتی، یا ویڈیو کال شروع نہیں کر سکتی۔ Android Developers، 2024 کے مطابق، Android 6.0 اور اس سے اوپر کیمرہ استعمال کرنے والی تمام ایپس سسٹم ڈائیلاگ کے ذریعے رن ٹائم پر اجازت کی درخواست کرنے کی پابند ہیں۔

اہم نکات

  • Camera Permission iOS اور Android پر ڈیوائس کیمرے کے ساتھ کام کرنے والی ایپس کے لیے ایک لازمی اجازت ہے۔
  • Android API 23 سے شروع ہونے والی لازمی رن ٹائم درخواست کے ساتھ Manifest.permission.CAMERA استعمال کرتا ہے۔
  • iOS کو کیمرہ استعمال کرنے کی وجہ کی وضاحت کے ساتھ Info.plist میں NSCameraUsageDescription کلید شامل کرنے کی ضرورت ہے۔
  • سیاق و سباق میں درخواست (مثال کے طور پر، «تصویر لیں» بٹن دبانے پر) منظوری کی شرح کو نمایاں طور پر بڑھاتی ہے۔
  • رسائی سے انکار کو متبادل منظرنامے کے ذریعے سنبھالا جانا چاہیے: گیلری سے انتخاب یا فائل اپ لوڈ۔

Camera Permission کیا ہے؟

Camera Permission ایک سسٹم اجازت ہے جو ایپس کے موبائل ڈیوائس کیمرے تک رسائی کو منظم کرتی ہے۔ موبائل پلیٹ فارم کیمرے کو ایک حساس وسیلہ سمجھتے ہیں کیونکہ یہ ریئل ٹائم میں ویڈیو ریکارڈ کرنے اور صارف کے ماحول کی تصاویر لینے کی اجازت دیتا ہے۔

Android پر، CAMERA اجازت خطرناک اجازتوں (dangerous permissions) کے زمرے میں آتی ہے اور اس کے لیے لازمی رن ٹائم درخواست درکار ہے۔ iOS پر، Info.plist میں NSCameraUsageDescription کلید شامل کرنا کیمرے تک رسائی حاصل کرنے والی کسی بھی ایپ کے لیے لازمی شرط ہے۔ اس کلید کے بغیر، کیمرہ کھولنے کی کوشش کرنے پر ایپ کریش ہو جائے گی۔

Statista (2024) کی ایک تحقیق کے مطابق، ٹاپ 100 App Store میں تقریباً 68% موبائل ایپس کسی نہ کسی شکل میں کیمرہ استعمال کرتی ہیں: QR کوڈ اسکین کرنے سے لے کر مکمل تصویر اور ویڈیو کیپچر تک۔ اسی وقت، 37% صارفین کیمرے تک رسائی سے انکار کر دیتے ہیں اگر وہ نہیں سمجھتے کہ ایپ کو اس اجازت کی ضرورت کیوں ہے۔

Android پر Camera Permission

Android پر Camera Permission مینی فیسٹ میں اعلامیہ اور اس کے بعد رن ٹائم درخواست کے ذریعے مانگی جاتی ہے۔ Android 6.0 سے شروع کرتے ہوئے، CAMERA اجازت صرف انسٹالیشن کے مرحلے پر حاصل نہیں کی جا سکتی — صارف کو واضح طور پر رسائی کی تصدیق کرنی ہوگی۔

AndroidManifest.xml میں اعلامیہ

Android پر کیمرہ استعمال کرنے کے لیے، آپ کو مینی فیسٹ فائل میں متعلقہ اعلامیہ شامل کرنا ہوگا۔ اس کے بغیر، سسٹم رن ٹائم درخواست ہونے کے باوجود ایپ کو کیمرہ کھولنے کی اجازت نہیں دے گا۔

xml
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />

uses-feature کے لیے android:required=false وصف ایپ کو بغیر کیمرہ والے آلات پر انسٹال ہونے کی اجازت دیتا ہے۔ یہ اہم ہے اگر کیمرہ پوری ایپ کے آپریشن کے لیے لازمی جزو نہیں ہے۔

Kotlin میں رن ٹائم درخواست

Camera Permission کی درخواست Activity Result API کے ذریعے کی جاتی ہے۔ جواب موصول ہونے کے بعد، ایپ اسٹیٹس چیک کرتی ہے اور کیمرہ شروع کرتی ہے یا وضاحت دکھاتی ہے۔

kotlin
private val cameraLauncher =
    registerForActivityResult(ActivityResultContracts.TakePicture()) { success ->
    if (success) {
        // تصویر محفوظ ہو گئی
        showPhoto(photoUri)
    }
}

private val permissionLauncher =
    registerForActivityResult(ActivityResultContracts.RequestPermission()) { granted ->
    if (granted) {
        openCamera()
    } else {
        showPermissionDenied()
    }
}

fun capturePhoto() {
    if (ContextCompat.checkSelfPermission(this,
        Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
        openCamera()
    } else {
        permissionLauncher.launch(Manifest.permission.CAMERA)
    }
}

Android 11+ کی خصوصیات

Android 11 سے شروع کرتے ہوئے، اگر صارف نے کیمرے تک رسائی سے دو بار انکار کیا ہے، تو سسٹم ڈائیلاگ مزید نہیں دکھایا جائے گا۔ Never Ask Again فلیگ خود بخود سیٹ ہو جاتا ہے، اور ایپ صرف Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) کے ذریعے صارف کو سسٹم سیٹنگز پر ری ڈائریکٹ کر سکتی ہے۔ ڈویلپر کو بروقت پیشگی وضاحت اسکرین دکھانے کے لیے shouldShowRequestPermissionRationale کی جانچ شامل کرنی چاہیے۔

iOS پر Camera Permission

iOS پر Camera Permission Info.plist میں NSCameraUsageDescription کلید اور AVCaptureDevice.requestAccess کال کے ذریعے منظم کی جاتی ہے۔ Apple درخواست کے جواز کو سختی سے چیک کرتا ہے: اگر ایپ کیمرہ کو صارف کے لیے واضح نہ ہونے والے طریقے سے استعمال کرتی ہے، تو App Store ایپ کو مسترد کر سکتا ہے۔

Info.plist کی ترتیب

iOS پر کیمرے تک رسائی کے لیے ایک لازمی شرط Info.plist فائل میں NSCameraUsageDescription کلید شامل کرنا ہے۔ ویلیو سٹرنگ درخواست کی وجہ کے طور پر سسٹم ڈائیلاگ میں دکھائی جائے گی۔

xml
<key>NSCameraUsageDescription</key>
<string>پروفائل تصاویر بنانے اور QR کوڈز اسکین کرنے کے لیے ایپ کو کیمرے تک رسائی درکار ہے۔</string>

Swift میں درخواست

Swift میں، درخواست جامد طریقہ AVCaptureDevice.requestAccess کے ذریعے کی جاتی ہے۔ جواب موصول ہونے کے بعد، ایپ اسٹیٹس پر کارروائی کرتی ہے اور کیپچر سیشن شروع کرتی ہے۔

swift
import AVFoundation

func requestCameraAccess() {
    AVCaptureDevice.requestAccess(for: .video) { granted in
        DispatchQueue.main.async {
            if granted {
                self.setupCameraSession()
            } else {
                self.showSettingsAlert()
            }
        }
    }
}

private func setupCameraSession() {
    guard let device = AVCaptureDevice.default(.for: .video)
    else { return }
    do {
        let input = try AVCaptureDeviceInput(device: device)
        let session = AVCaptureSession()
        session.addInput(input)
        session.startRunning()
    } catch {
        print("Camera error: \(error)")
    }
}

موجودہ اسٹیٹس کی جانچ

کیمرے تک رسائی کی درخواست کرنے سے پہلے، AVCaptureDevice.authorizationStatus(for: .video) کے ذریعے موجودہ اجازت نامے کی اسٹیٹس چیک کرنے کی سفارش کی جاتی ہے۔ یہ غیر ضروری سسٹم ڈائیلاگ کالز سے بچاتا ہے اور ان معاملات کو درست طریقے سے سنبھالتا ہے جہاں صارف پہلے ہی فیصلہ کر چکا ہے۔ اسٹیٹس .notDetermined، .restricted، .denied یا .authorized ہو سکتی ہے۔

کیمرہ استعمال کے منظرنامے

Camera Permission سادہ اسکیننگ سے لے کر مکمل ویڈیو کیپچر تک مختلف منظرناموں میں لاگو کیا جاتا ہے۔ ہر منظرنامے کے نفاذ اور اجازت کے انتظام کے لیے اپنی ضروریات ہوتی ہیں۔

QR اور بارکوڈ اسکیننگ

iOS پر، QR کوڈ اسکین کرنے کے لیے AVFoundation فریم ورک سے AVCaptureMetadataOutput استعمال کیا جاتا ہے، جس کے لیے Camera Permission درکار ہے۔ Android پر، Google کے ML Kit Barcode Scanning استعمال کرنے کی سفارش کی جاتی ہے۔ یہ نوٹ کرنا ضروری ہے کہ QR کوڈ اسکیننگ کیمرہ خود استعمال کرتی ہے، نہ کہ امیج اینالیسس لائبریری — اس لیے، Camera Permission لازمی ہے۔

تصویر اور ویڈیو کیپچر

معیاری تصویر یا ویڈیو کیپچر کے لیے iOS اور Android دونوں پر Camera Permission درکار ہے۔ Android پر، آپ Intent(MediaStore.ACTION_IMAGE_CAPTURE) استعمال کر سکتے ہیں، جو سسٹم کیمرہ ایپ کھولتا ہے — اس صورت میں، اجازت سسٹم ایپ مانگتی ہے، آپ کی ایپ نہیں۔ تاہم، ایپ میں کیمرہ پیش نظارہ (CameraX، Camera2 API) کے لیے، آپ کی اپنی اجازت درکار ہے۔

ویڈیو کالز اور AR

ویڈیو کالنگ ایپس (Zoom، Google Meet) اور بڑھی ہوئی حقیقت ایپس (ARCore، ARKit) سامنے یا پچھلے کیمرے سے ویڈیو کیپچر کرنے کے لیے Camera Permission کی درخواست کرتی ہیں۔ اس صورت میں، درخواست کو خاص طور پر احتیاط سے سمجھایا جانا چاہیے، کیونکہ صارف یہ توقع نہیں کر سکتا کہ AR فرنیچر فٹنگ ایپ کیمرے کی درخواست کرے گی۔

کیپچر پیرامیٹرز کی ترتیب

iOS پر کیمرے کے ساتھ کام کرتے وقت، آپ AVCaptureDeviceInput اور AVCapturePhotoOutput کے ذریعے کیپچر پیرامیٹرز ترتیب دے سکتے ہیں۔ Android پر، CameraX ImageCapture، VideoCapture اور Preview کال بیکس کے ذریعے ترتیب کو آسان بناتا ہے۔ ہر سیٹنگ کے لیے، آپ کو مطلوبہ ریزولوشن، زوم لیول اور فوکس موڈ بتانا ہوگا۔ صحیح کیپچر کنفیگریشن کا انتخاب براہ راست ایپ کی کارکردگی اور بیٹری کی کھپت کو متاثر کرتا ہے۔

کیمرے کے ساتھ کام کرتے وقت خرابی کا انتظام

کیمرے کے ساتھ کام کرتے وقت مختلف خرابیاں پیدا ہو سکتی ہیں۔ کیمرہ کسی دوسری ایپ کے زیر استعمال ہو سکتا ہے، سسٹم پرائیویسی سیٹنگز میں غیر فعال ہو سکتا ہے، یا ڈیوائس پر موجود نہیں ہو سکتا۔ Android پر، CameraManager.openCamera کال کرتے وقت CameraAccessException کو سنبھالنے کی سفارش کی جاتی ہے۔ iOS پر، AVCaptureDevice.authorizationStatus چیک کریں اور صارف کو رسائی فعال کرنے کے لیے سیٹنگز میں جانے کی پیشکش کرکے انکار کو درست طریقے سے سنبھالیں۔ PackageManager.hasSystemFeature استعمال کرکے اجازت کی درخواست سے پہلے ہمیشہ ڈیوائس پر کیمرے کی موجودگی چیک کریں۔ اس طرح کی جانچ کیمرہ کے بغیر آلات پر غیر ضروری درخواستوں کو روکتی ہے اور صارف کے تجربے کو بہتر بناتی ہے۔

کیمرہ کارکردگی کی اصلاح

کارکردگی کی اصلاح کیمرے کے ساتھ کام کرتے وقت ایپ کے ہموار آپریشن کے لیے اہم ہے۔ ہائی ریزولوشن میں ویڈیو کیپچر کرنا اہم CPU اور بیٹری وسائل استعمال کرتا ہے۔

iOS پر، اگر ایپ کو 4K کیپچر کی ضرورت نہیں ہے تو زیادہ سے زیادہ ریزولوشن کے بجائے AVCaptureSessionPresetMedium استعمال کریں۔ Android پر، CameraX آپ کو ImageCaptureConfig.Builder کے ذریعے ہدف ریزولوشن کے ساتھ ImageCapture کنفیگر کرنے کی اجازت دیتا ہے۔ جب ایپ بیک گراؤنڈ میں جائے تو کیمرہ جاری کرنا اور واپس آنے پر دوبارہ حاصل کرنا بھی ضروری ہے۔ یہ بیٹری کی زندگی بچانے کے لیے Google اور Apple کی تجویز کردہ معیاری مشق ہے۔

کیمرے تک رسائی کی درخواست کے بہترین طریقے

بہترین طریقے Camera Permission کی منظوری کی شرح بڑھانے اور App Store یا Google Play کی طرف سے ایپ کے مسترد ہونے سے بچنے میں مدد دیتے ہیں۔

وضاحت کے لیے پیش نظارہ استعمال کریں

سسٹم ڈائیلاگ دکھانے سے پہلے، ایک اسکرین دکھائیں جس میں مثال ہو کہ کیمرہ کیسے استعمال ہوگا: اسکیننگ انٹرفیس کی تصویر، پروفائل فوٹو فریم، پہچانے گئے QR کوڈ کی مثال۔ بصری وضاحت متنی وضاحت سے بہتر کام کرتی ہے۔ UX Movement (2024) کے مطابق، بصری پیش نظارہ شامل کرنے سے منظوری کی شرح 72% تک بڑھ جاتی ہے۔

عمل کے لمحے میں اجازت کی درخواست کریں

ایپ کے پہلے لانچ پر کبھی بھی Camera Permission کی درخواست نہ کریں۔ ایک صارف جس نے ابھی ایپ کھولی ہے، اگر وہ سیاق و سباق نہیں سمجھتا تو امکان ہے کہ انکار کرے گا۔ صرف اس وقت رسائی کی درخواست کریں جب صارف کیمرے کی ضرورت والے بٹن کو دباتا ہے: «پروفائل فوٹو لیں»، «کوڈ اسکین کریں»، «ویڈیو کال شروع کریں»۔ ایک سیاقی محرک درخواست کو زیادہ بامعنی بناتا ہے۔

متبادل فراہم کریں

اگر صارف Camera Permission سے انکار کرتا ہے، تو عمل کو انجام دینے کا متبادل طریقہ پیش کریں: گیلری سے تصویر منتخب کرنا، دستی طور پر QR کوڈ ڈیٹا درج کرنا، ڈیوائس سے تصویر اپ لوڈ کرنا۔ انکار کو ایپ کی فعالیت کو مکمل طور پر مسدود نہیں کرنا چاہیے — یہ Google Play اور App Store ڈیزائن کی سفارشات کی ضرورت ہے۔

اکثر پوچھے گئے سوالات

اگر صارف Camera Permission سے انکار کرے تو کیا ہوتا ہے؟

اگر اجازت کے بغیر کیمرہ کھولنے کی کوشش کرنے پر ایپ کریش ہوتی ہے، تو آپ کو خرابی ملے گی۔ آپ کو Android پر checkSelfPermission یا iOS پر authorizationStatus کے ذریعے پہلے سے اسٹیٹس چیک کرنی چاہیے اور متبادل منظرنامہ پیش کرنا چاہیے۔

کیا QR کوڈ اسکین کرنے کے لیے Camera Permission ضروری ہے؟

ہاں، کیمرے کے ذریعے QR کوڈ اسکین کرنے کے لیے Camera Permission ضروری ہے۔ ایک متبادل طریقہ یہ ہے کہ کیمرہ کے بغیر تصویر سے QR کوڈ پہچاننے والی لائبریریز استعمال کریں (مثال کے طور پر، گیلری سے کوڈ والی تصویر ڈاؤن لوڈ کرنا)، لیکن اس کے لیے Photo Library Permission درکار ہے۔

Android پر Activity کے بغیر Camera Permission کی درخواست کیسے کریں؟

Jetpack Compose آرکیٹیکچر میں، آپ composable فنکشن میں ActivityResultContracts.RequestPermission کے ساتھ rememberLauncherForActivityResult استعمال کر سکتے ہیں۔ UI کے بغیر سروسز کے لیے، براہ راست اجازت کی درخواست ممکن نہیں ہے — کنٹرول Activity کو منتقل کیا جانا چاہیے۔

میری iOS ایپ کیمرہ کھولتے وقت کیوں کریش ہوتی ہے؟

سب سے زیادہ ممکنہ وجہ Info.plist میں NSCameraUsageDescription کلید کی عدم موجودگی ہے۔ iOS 10 سے، اس کلید کے بغیر AVCaptureDevice تک کسی بھی رسائی کے نتیجے میں NSInvalidArgumentException استثنیٰ کے ساتھ کریش ہوتا ہے۔

جانچ کے لیے Camera Permission کیسے ری سیٹ کریں؟

Android پر، Settings → Apps → [App] → Permissions کے ذریعے ایپ سیٹنگز ری سیٹ کریں۔ iOS پر، Settings → [App] → Camera ٹوگل استعمال کریں۔ iOS پر ٹیسٹ آٹومیشن کے لیے، آپ resetAuthorizationStatus کے ساتھ XCUITest استعمال کر سکتے ہیں۔

خلاصہ

  • Camera Permission دونوں موبائل پلیٹ فارمز پر کیمرے تک رسائی کے لیے ایک لازمی رن ٹائم اجازت ہے۔
  • Android کو مینی فیسٹ میں CAMERA کا اعلان کرنے اور shouldShowRequestPermissionRationale جانچ کے ساتھ Activity Result API کے ذریعے درخواست کرنے کی ضرورت ہے۔
  • iOS کو Info.plist میں NSCameraUsageDescription کلید اور AVCaptureDevice.requestAccess(for: .video) کال کی ضرورت ہے۔
  • سیاقی درخواست UX Movement کے مطابق منظوری کی شرح کو 72% تک بڑھاتی ہے۔
  • استعمال کے منظرنامے میں تصویر اور ویڈیو کیپچر، QR کوڈ اسکیننگ، ویڈیو کالز اور AR فیچرز شامل ہیں۔
  • انکار پر متبادل منظرنامہ (گیلری انتخاب، دستی ان پٹ) ایپ اسٹور کی ضروریات کو پورا کرنے کے لیے لازمی ہے۔
  • بصری وضاحت کے ساتھ پیشگی اسکرین انکار کی شرح کو نمایاں طور پر کم کرتی ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں