12

मैंने BroadcastReceiver बनाया है, जो BOOT_COMPLETED प्राप्त करता है।एंड्रॉइड: ऑनबूट रिसीवर: निर्यात किए गए रिसीवर को अनुमति की आवश्यकता नहीं है

मेरे AndroidManifest.xml मैं यह इतना की तरह जोड़ दिया है:

<receiver 
    android:name=".OnBootReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     <action android:name="android.intent.action.QUICKBOOT_POWERON" /> 
    </intent-filter> 
</receiver> 

हालांकि, मैं चेतावनी मिलती है: निर्यात रिसीवर अनुमति की आवश्यकता नहीं है। मैंने एसओ पर इसके बारे में पढ़ा है, लेकिन मैं इसे पूरी तरह से समझ नहीं पा रहा हूं।

तो क्या कोई इस शुरुआती को समझा सकता है :) मुझे यह चेतावनी क्यों मिल रही है, और इसके खिलाफ क्या करना है (और क्यों)? ,

+0

यह सिर्फ साधन कि कोई भी इसे कॉल कर सकता है, क्योंकि यह सार्वजनिक है और अनुमति की आवश्यकता नहीं है (एक रिसीवर कॉल करने के लिए एक विशिष्ट अनुमति का अनुरोध कर सकता है) – njzk2

+0

@ njzk2 लेकिन इसे जोड़ने से यह काम करना बंद कर देता है? मुझे याद है कि मैंने एक बार कोशिश की और यह नहीं हुआ काम लेकिन मेरे कोड में कुछ समस्याएं थीं इसलिए मुझे यकीन नहीं है। –

+0

@ njzk2 तो वास्तव में, मुझे इसके खिलाफ कुछ भी करने की ज़रूरत नहीं है? – Xander

उत्तर

5

आप रिसीवर टैग करने के लिए android:exported="false" जोड़कर इस चेतावनी को निकालने कर सकते हैं (https://stackoverflow.com/a/11526028/757073 इस उत्तर देखें) जिसका मतलब है कि आपके पास एंड्रॉइड है: exported = "true" set और अब यह से किसी भी ब्रॉडकास्टर्स को आपके आवेदन के बाहर प्राप्त कर सकता है) चूंकि यह से प्रसारण प्राप्त कर सकता है क्योंकि आपके एप्लिकेशन के बाहर ब्रॉडकास्टर्स, यह आपको चेतावनी देता है कह रही है "अरे, क्या आप निश्चित हैं कोई भी ब्रो एडकास्टर आपको बुला सकता है? मेरी राय में, यह बेहतर है, तो आप केवल उन प्रसारकों आप को लागू करने की अनुमति आप एंड्रॉयड के माध्यम से इस रिसीवर के लिए निर्धारित किया है है अनुमति देते हैं: अनुमति "

आशा यह स्पष्ट है !!!

+7

और यदि आप गलत पर निर्यात करते हैं, तो कर सकते हैं जब बूट पूरा हो जाता है तब भी इसे बुलाया जाता है? – Xander

7

चेतावनी "निर्यात रिसीवर अनुमति की आवश्यकता नहीं है" का अर्थ है आप (कुछ कार्रवाई के साथ एक आशय-फिल्टर है:

+0

क्या होगा अगर यह एपीआई का हिस्सा है? इस उदाहरण में बूट पूरा हो गया है? या जब एक नई कैमरा छवि ली गई थी (इसका उपयोग करके: http://java.labsoft.dcc.ufmg.br/apiminer/static/docs/reference/android/hardware/Camera.html#ACTION_NEW_PICTURE)? –

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