2015-08-21 7 views
8

हाय मैं एक स्थान आधारित ऐप का उपयोग कर रहा हूं और पृष्ठभूमि में रहते हुए आईफोन कैमरा फ्लैशलाइट का उपयोग करना चाहता हूं। दुर्भाग्य से फ्लैशलाइट केवल अग्रभूमि में काम कर रहा है, यह स्वचालित रूप से पृष्ठभूमि में फ्लैश को बंद कर देता है कोड निष्पादित कर रहा है।ऐप फ्लैशलाइट काम नहीं कर रहा है जबकि ऐप पृष्ठभूमि में है

कोड मैं इस्तेमाल किया केवल अग्रभाग

#import <AVFoundation/AVFoundation.h> 
//flashcode 
Class captureDeviceClass = NSClassFromString(@"AVCaptureDevice"); 
if (captureDeviceClass != nil) { 
    AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo]; 
    if ([device hasTorch] && [device hasFlash]){ 

     [device lockForConfiguration:nil]; 
     if (device.torchMode == AVCaptureTorchModeOff) 
     { 
      [device setTorchMode:AVCaptureTorchModeOn]; 
      [device setFlashMode:AVCaptureFlashModeOn]; 
      //torchIsOn = YES; 
     } 
     else 
     { 
      [device setTorchMode:AVCaptureTorchModeOff]; 
      [device setFlashMode:AVCaptureFlashModeOff]; 
      // torchIsOn = NO; 
     } 
     [device unlockForConfiguration]; 
    } 
} 
+0

यह अच्छा होगा अगर कोई बताता है कि एप्पल पृष्ठभूमि में ऐप सैंडबॉक्सिंग फ्लैशलाइट को कैसे मारता है –

+1

मैंने थोड़ा और समझाने के लिए अपना जवाब संपादित किया। –

+1

क्या इससे थोड़ा सा मदद मिली? –

उत्तर

11

यह एक सामान्य व्यवहार है में काम कर रहा है।
ऐप्पल की सैंडबॉक्सिंग आपको पृष्ठभूमि में अपने ऐप के दौरान फ्लैश रखने की अनुमति नहीं देगी।
जब तक हम जेलब्रोकन ऐप के बारे में बात नहीं कर रहे हैं तब तक कोई कामकाज नहीं है।

संपादित करें:
एप्पल यह प्रणाली के API के उपयोग पर बहुत सख्त है। खासकर जब यह आता है करने के लिए:
- गोपनीय
- बैटरी जीवन
- उपयोगकर्ता अनुभव

टॉर्च के मामले में, पिछले दो आइटम प्रासंगिक हैं। ऐप्पल अग्रभूमि में नहीं होने पर बैटरी को निकालने नहीं देगा और आईओएस उपयोगकर्ताओं को इस तथ्य के लिए उपयोग किया जाता है कि फ्लैशलाइट, कैमरा, माइक्रोफोन ... पृष्ठभूमि में जाने पर तुरंत अक्षम हो जाते हैं (कुछ पृष्ठभूमि मोड में माइक्रोफ़ोन के लिए अपवाद के साथ मामले)।

अपनी प्रारंभिक पोस्ट पर टिप्पणी का उत्तर देने के लिए, आईओएस आपके हार्डवेयर को नियंत्रित करता है। इसलिए जब ऐप्पल ने फैसला किया कि वे नहीं चाहते हैं कि उपयोगकर्ता ऐप को बंद करते समय रोशनी पर बने रहें, तो आईओएस आपके ऐप को पृष्ठभूमि में चलाए जाने पर फ्लैश को बंद कर देगा। आपके ऐप को इसे रोकने के लिए कोई अधिकार नहीं है।

संबंधित मुद्दे