2012-07-26 15 views
9

अगर मैं एक प्रसारण रिसीवर इस तरह मेरी गतिविधि में कहते हैं कि रजिस्टर,एंड्रॉइड: गैर-प्रकट प्रसारण रिसीवर निर्यात किए गए हैं?

@Override 
protected void onResume() { 
    super.onResume(); 

    myReceiver = new BroadcastReceiver() { ... }; 
    IntentFilter filter = new IntentFilter("com.example.MY_ACTION"); 
    registerReceiver(myReceiver, filter); 
} 

इस रिसीवर निर्यात किया जाता है? यदि कोई अन्य ऐप com.example.MY_ACTION प्रसारित करता है, तो इसे myReceiver द्वारा प्राप्त किया जाएगा?

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

धन्यवाद।

+1

वे निर्यात किए जाते हैं। सुरक्षा के तरीकों के लिए, इसे जांचें: http://stackoverflow.com/questions/9528608/restricting-android-broadcast-receiver-from-specific-app – Kaediil

+2

वह पोस्ट मैनिफेस्ट-पंजीकृत रिसीवर के बारे में है। मैं विशेष रूप से प्रोग्रामेटिक रूप से पंजीकृत रिसीवर के बारे में पूछ रहा हूं। –

+0

कोई फर्क नहीं पड़ता। एक बार आपका ऐप चल रहा है और आप रिसीवर शुरू करते हैं तो कोई भी आपको इरादे भेज सकता है। – Kaediil

उत्तर

1

BroadcastReceiver एपीआई पर एपीआई डॉक्स से:

आप, आवेदन भर में प्रसारण भेज नीचे वर्णित अधिक सामान्य सुविधाओं के बजाय LocalBroadcastManager के साथ इस वर्ग का उपयोग कर विचार करने की जरूरत नहीं है, तो। इससे आपको कुशल कार्यान्वयन (कोई क्रॉस-प्रोसेस संचार आवश्यक नहीं) और आपको अन्य एप्लिकेशन से संबंधित किसी भी सुरक्षा समस्या के बारे में सोचने से बचने की अनुमति देगा, जो आपके प्रसारण प्राप्त करने या भेजने में सक्षम हैं।

कम से कम आप केवल अपने आवेदन के भीतर रिसीवर रख सकते हैं।

+2

जबकि यह तकनीकी रूप से मेरे प्रश्न का उत्तर नहीं देता है, यह अंतर्निहित समस्या का समाधान है। –

+1

यदि आप आवेदन के अंदर प्रसारण प्रक्रियाओं को पार करने के लिए ब्रॉडकास्ट भेजना चाहते हैं तो व्यवहार्य समाधान नहीं है। –

+0

@ जुसुओ ओहटन ठीक है, लेकिन यह सवाल नहीं था कि सवाल क्या था, अब यह था? – Kaediil

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