2013-04-17 5 views
5

मान लीजिए मैं एक आवेदन है कि किसी तरह से फैली हुई है विकसित करना चाहते हैं से एक मंशा को बाधित करना एक बहुत लोकप्रिय आवेदन मैं स्पष्ट रूप से नियंत्रण अपने हाथ में नहीं है (मुझे कहते हैं कि "के साथ सहयोग" हैं)। आइए सरलता के लिए, मान लें कि बहुत प्रसिद्ध एप्लिकेशन लेखक मेरे एप्लिकेशन को अवरोधित करने के लिए एक अपडेट जारी नहीं करेगा।एक बाहरी अनुप्रयोग

मैंने एप्लिकेशन की कार्यक्षमता का अध्ययन किया और पहचान की कि यह BroadcastReceiver एस का व्यापक रूप से उपयोग करता है। मैं भी प्रकट करता हूं, मेनिफेस्ट से, com.famousvendor.intent.INTENT_NAME स्थिरांक मैं उपयोग कर सकता हूं।

सवाल सीधा है: अगर मैं एक प्रसारण रिसीवर आशय com.famousvendor.intent.INTENT_NAME प्रसारण छोटे एप्लिकेशन पकड़ जाएगा के लिए सेट के साथ एक आवेदन पत्र, अर्थात् org.zighinetto.tinyapp बनाने? या क्या उन प्रसारणों को केवल उस प्रक्रिया से प्राप्त किया जा सकता है जो उन्हें आग लगती है?

+4

हाँ, आप कर सकते हैं। (भी, इस सवाल का जवाब देने का एक त्वरित तरीका यह है कि इसे आकस्मिक रूप से परीक्षण किया जाए) – njzk2

+0

मैं शुरुआती डिज़ाइन चरण में हूं, इसलिए अगर मैं कहता हूं कि अवधारणा का सबूत बनाना अन्य सहकर्मी के अनुभव से पूछने से अधिक लंबा काम है –

उत्तर

7

क्या छोटे ऐप प्रसारण को पकड़ेंगे? या क्या उन प्रसारणों को केवल उस प्रक्रिया से प्राप्त किया जा सकता है जो उन्हें आग लगती है?

ऐसी कई चीजें हैं जो इसे नियंत्रित करती हैं।

यदि प्रसारण अनुमति के साथ सुरक्षित है, तो आप उस प्रसारण को तब तक प्राप्त नहीं कर पाएंगे जब तक कि आप उस अनुमति को न मानें। अनुमति के प्रकार के आधार पर, उस अनुमति को पकड़ना आपके लिए संभव नहीं हो सकता है।

इसके अलावा, यदि प्रसारण एक आदेशित प्रसारण है, तो उच्च प्राथमिकता वाले ऐप्स उस प्रसारण को प्राप्त करेंगे और इसे निरस्त कर सकते हैं (घटना का उपभोग कर सकते हैं, इसलिए कम प्राथमिकता वाले रिसीवर प्रसारण नहीं प्राप्त करते हैं)। प्राथमिकता <intent-filter> (या IntentFilter) के माध्यम से सेट की गई है, और संभवतः आपके डेवलपर द्वारा किए गए प्राथमिक मूल्य के आधार पर, आपके स्वयं के ऐप की तुलना में उच्च प्राथमिकता वाले एक होने के लिए संभव नहीं हो सकता है।

वहाँ, अन्य स्थानीय-केवल परिदृश्यों (जैसे, LocalBroadcastManager) भी कर रहे हैं, हालांकि आप प्रकट में उन लोगों के नहीं देखना होगा, और इसलिए हम मान सकते हैं कि वे क्या यहाँ नहीं किया जाता है किया जा रहा है ... आज।

हमें सादगी के लिए भी मान लें, कि बहुत प्रसिद्ध एप्लिकेशन लेखक मेरे आवेदन को ब्लॉक करने के लिए एक अद्यतन जारी नहीं करेगा।

उन्हें विशेष रूप से आपके एप्लिकेशन को अवरुद्ध करने की आवश्यकता नहीं है। उन्हें केवल यह तय करने की आवश्यकता है कि वे वास्तव में एपीआई चाहते हैं जो आप शोषण करने का प्रयास कर रहे हैं, और यदि वे एक आकस्मिक एपीआई से अधिक हैं तो वे इसे लॉक करना चुन सकते हैं। उदाहरण के लिए, a blog post by a balding guy के जवाब में वे ऐसा कर सकते हैं।

+0

मैं ' मैं निश्चित रूप से एक आकस्मिक एपीआई का शोषण कर रहा हूँ। स्पष्टीकरण के लिए धन्यवाद। साथ ही, जब मैंने कहा "मेरे आवेदन को अवरुद्ध करें" मेरा मतलब एक विशिष्ट ब्लॉक नहीं था, बल्कि "मुझे [और दूसरों] को उनके प्रसारण का फायदा उठाने के लिए रोकने के लिए कोई उपाय", और वास्तव में मामले में पड़ता है –

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