2013-07-10 13 views
12

मेरे पास एक कस्टम कैमरा एप्लिकेशन है और मुझे फ्लैश चालू करने में सक्षम होना चाहिए (वास्तव में मशाल मोड)/बंद।कैमरा पूर्वावलोकन में कैमरा फ्लैश का उपयोग करने के लिए मुझे किस अनुमति की आवश्यकता है?

इस मामले में मुझे किस तरह की अनुमति की आवश्यकता है?

1.Only

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

2. 1 प्लस से उन:

<permission android:name="android.permission.FLASHLIGHT" 
    android:permissionGroup="android.permission-group.HARDWARE_CONTROLS" 
    android:protectionLevel="normal"/> 

मुझे लगता है कि यह प्रयोग किया जाता है जब आप फ़्लैश का उपयोग करना चाहते हैं, लेकिन कैमरे के बिना (इस मामले में की तरह: Android - Using Camera Flash)

1 प्लस से 3.Those:

<uses-permission android:name="android.hardware.camera.flash"/> 

संपादित (धन्यवाद @maclir के लिए):

लाइन से ऊपर सही नहीं है। सही एक है:

<uses-permission android:name="android.permission.CAMERA"/> 

developer.android.com: "सबफेचर। एप्लिकेशन डिवाइस कैमरे के फ्लैश का उपयोग करता है।" (http://developer.android.com/guide/topics/manifest/uses-feature-element.html)

सभी 3 मामलों में, 2 उपकरणों पर परीक्षण किया गया, ठीक काम करता है - मैं फ्लैश को सक्रिय/निष्क्रिय कर सकता हूं, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि उनमें से प्रत्येक का क्या अर्थ है। यह अजीब बात है कि विकल्प 3 के बिना भी यह ठीक काम कर रहा है ... प्रयुक्त विकल्प 3 से क्या है?

मुझे लगता है कि मैं कुछ याद कर रहा हूँ ...

उत्तर (मैं आशय के माध्यम से कैमरे का उपयोग नहीं कर रहा हूँ

<uses-permission android:name="android.permission.CAMERA" /> 

आदेश कैमरे का उपयोग करने में अनिवार्य है, मैं एक अनुकूलित है कैमरा एप्लिकेशन)

और:

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

ऐप में उपयोग की जाने वाली कैमरा विशिष्ट विशेषताएं हैं I

android:required="false" मतलब है गूगल प्ले उपकरणों है कि इन कैमरा विशेषताओं में शामिल नहीं है करने के लिए स्थापित किए जाने से आवेदन नहीं रोका जा होगा - तो कैमरा और कैमरा फ्लैश के बिना एक युक्ति होने बाजार से ऐप्लिकेशन को स्थापित करने में सक्षम हो जाएगा उपयोगकर्ता।

http://developer.android.com/reference/android/hardware/Camera.html

+0

मुझे लगता है कि विकल्प 3 कैमरा और ऑटोफोकस के उपयोग के लिए सबसे अच्छा उपयोग किया जाता है। – Niko

+0

https://android.googlesource.com/platform/frameworks/native/+/master/data/etc/android.hardware.camera.flash-autofocus.xml – Niko

उत्तर

22

एंड्रॉयड डेवलपर्स permission-group के अनुसार:

ध्यान दें कि यह तत्व एक अनुमति ही है, केवल एक वर्ग है, जिसमें अनुमतियाँ रखा जा सकता है की घोषणा नहीं करता।

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.FLASHLIGHT" /> 

कैमरा और टॉर्च उपयोग करने में सक्षम होने के लिए: अनुमतियों की घोषणा और उन्हें समूहों

को बताए आप दो अनुमतियों Manifest.permission की आवश्यकता होगी के बारे में जानकारी के लिए <permission> तत्व मिलते हैं।

और तुम हार्डवेयर सुविधाओं है कि आवेदन (कैमरा और फ्लैश) द्वारा किया जाता है वाणी की आवश्यकता होगी Features Reference:

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

android:required इंगित करता है कि फोन नहीं होने से इन हार्डवेयर आपके आवेदन या नहीं स्थापित कर सकते हैं।

अपने तीसरे बिंदु पर, मुझे लगता है कि आप एक प्रकार क्योंकि uses-permission टैग android.hardware...

<uses-permission android:name="android.hardware.camera.flash"/> 
+0

मैंने तीसरे कथन के प्रश्न में सही किया है (वास्तव में जोड़ा गया एक टिप्पणी) :) – Paul

+0

उत्तर के लिए धन्यवाद। मैंने जवाब को बेहतर तरीके से प्रतिबिंबित करने के लिए प्रश्न अपडेट किया है। – Paul

+0

आपका स्वागत है :) – maclir

1

Maclir जवाब के साथ नहीं किया जा सकता है की अनुमति के सभी विस्तार कैमरे का उपयोग करने के लिए आवश्यक है और इसकी फ़्लैश प्रकाश दिखा रहा है । आप अपने आवेदन में फ्लैशलाइट का उपयोग करने के लिए इन दो अनुमतियों का भी उपयोग कर सकते हैं।

<uses-permission android:name="android.permission.CAMERA"/> 
<uses-feature android:name="android.hardware.camera" /> 
+1

इसलिए, मुझे '<उपयोग-सुविधा एंड्रॉइड: name = "android.hardware.camera.flash" /> 'की आवश्यकता नहीं है यदि मैं' <उपयोग-सुविधा एंड्रॉइड: name = "एंड्रॉइड का उपयोग करता हूं। हार्डवेयर.camera "/>'? – Paul

+1

वास्तव में यह इन दो प्रीमिशन –

+0

के साथ ठीक काम नहीं करता है, यदि आप <उपयोग-अनुमति एंड्रॉइड: name = "android.permission.CAMERA" /> जोड़ते हैं, तो यह कैमरे से संबंधित सभी उपयोग-सुविधाओं को स्पष्ट रूप से जोड़ देगा .. –

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