एंड्रॉइड ऐप शेयर बटन को कैसे लागू करते हैं?


11

मैं सोच रहा था कि एंड्रॉइड एप्लिकेशन और एंड्रॉइड शेयर बटन और शेयर तंत्र को कैसे लागू करते हैं। उदाहरण के लिए, जब मैं YouTube पर शेयर बटन हिट करता हूं, तो पॉप अप करने के लिए साझा करने के लिए ऐप्स बंद कर देता है। यह सूची कैसे निर्धारित की जाती है? क्या कोई विशिष्ट "शेयर" इरादा है, और फिर सभी इरादे के प्रकार साझा करने में सक्षम स्पॉट एक्सट्रैस दिखाते हैं? इसे लागू करने के लिए उपयोग किए जाने वाले डिज़ाइन पैटर्न का तकनीकी नाम क्या है? धन्यवाद।


1
क्या वास्तव में आपका मतलब "पूप्स" है, या यह कि "पॉप्स" का कोई टाइपो है? अमेरिकी अंग्रेजी में कम से कम, पूर्व वही है जो बच्चे अपने डायपर के लिए करते हैं।
JDługosz

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

उप (पनडुब्बी?) में! क्या करें: सबमिट करने से पहले प्रूफरीड करें। और शर्मनाक शब्दों के साथ अपनी भविष्यवाणी सूची को प्रदूषित न करें।
जुल्लुगोज़

संयोगवश मेरी भविष्यवाणी सूची पुराने ईमेल के सामान से भरी हुई है, जिसे स्वेप स्वचालित रूप से पढ़ता है। ओह!
जैक मैडिंगटन

जवाबों:


10

इसके दो भाग हैं: संचार एप्लिकेशन के लिए यह कहने के लिए कि वे चीजें साझा कर सकते हैं, और साझा करने के लिए सामग्री वाले ऐप्स के लिए तंत्र। मैं एक बार में उनके साथ एक सौदा करूंगा, लेकिन पहले इरादों के बारे में एक त्वरित टिप्पणी ।

इंटेंट

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

इरादे फिल्टर और संचार अनुप्रयोग

प्रत्येक ऐप यह बताने के लिए इरादे फ़िल्टर निर्दिष्ट करता है कि वह किस प्रकार की क्रियाएं कर सकता है। उदाहरण के लिए, एक छवि दर्शक ऐप "इस URL को देखने" के लिए एक इरादा फ़िल्टर पंजीकृत करेगा जहां MIME प्रकार "छवि / *" है; एक वेब ब्राउज़र "इस URL को देखें" जहां URL योजना "http" या "https" है, के लिए एक आशय फ़िल्टर को पंजीकृत करेगा। चीजों को साझा करने में सक्षम होने के लिए, एक एप्लिकेशन "सेंड" इरादे के लिए एक इरादे फिल्टर को पंजीकृत करता है, या तो एक विशिष्ट प्रकार के साथ (जैसे अगर यह केवल फोटो साझा कर सकता है), या किसी भी प्रकार के लिए।

सामग्री ऐप

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

मार्शमैलो में नया: डायरेक्ट शेयर

मार्शमैलो में, डायरेक्ट शेयर नामक एक अन्य तंत्र है । यह आशय तंत्र को पूरक करता है ताकि आप चयनकर्ता संवाद से सीधे साझा करने के लिए लोगों या समूहों को चुन सकें, "जो आप इसे भेजना चाहते हैं" के अतिरिक्त चरण को छोड़ दें। यह थोड़ा अलग काम करता है: संचार ऐप को एक सेवा प्रदान करनी होती है। जब सामग्री वाला ऐप एक चयनकर्ता के लिए पूछता है, तो एंड्रॉइड प्रत्येक प्रासंगिक ऐप के लिए सेवा शुरू करता है। सेवा प्रासंगिक साझा लक्ष्यों की सूची देती है , और एंड्रॉइड उन सभी अलग-अलग सूचियों को सूची में शामिल करता है जो संवाद में दिखाई देती हैं।


लेकिन, मैंने देखा है कि ऐप कुछ अलग चॉसर डायलॉग दिखाते हैं । क्या वे सभी वास्तव में ओएस द्वारा प्रदर्शित किए गए हैं, या ऐप खुद ही लक्ष्यों की सूची प्राप्त कर सकता है?
user1686

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

11

मैं एक देव नहीं हूं, इसलिए मैं सिर्फ एक कच्ची व्याख्या दे सकता हूं: एप्स में यह घोषित किया गया है Manifestकि मीमेटिप्स वे समझते हैं और शेयर क्रियाओं पर प्रतिक्रिया देने के लिए तैयार हैं। इसके लिए वे तथाकथित "इरादे फिल्टर" को परिभाषित करते हैं, जैसे:

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT"/>
    <data android:mimeType="application/*" />
    <data android:mimeType="audio/*" />
    <data android:mimeType="image/*" />
    <data android:mimeType="message/*" />
    <data android:mimeType="multipart/*" />
    <data android:mimeType="text/*" />
    <data android:mimeType="video/*" />
</intent-filter>

इसलिए जब भी आप "शेयर" बटन को हिट करते हैं, तो सामग्री-से-शेयर का मूल्यांकन किया जाता है और उन ऐप्स के खिलाफ मिलान किया जाता है, जिन्होंने प्रारूप प्राप्त करने की इच्छा व्यक्त की थी।

सूत्रों का कहना है:


1
यह बहुत सीधे तौर पर है। एप्लिकेशन (साझा करना) यह स्वयं है इरादे के कुछ उत्तरदाताओं को फ़िल्टर कर सकता है, लेकिन अधिकांश ऐसा नहीं करते हैं।
coteyr

2
@ हिल्टन शुमवे ने यही कारण है कि मैंने उनके जवाब को गलत ठहराया। मेरे अलावा, दान विकास में फिट है और बेहतर तरीके से जानता है कि चीजें एक साथ कैसे चलती हैं। तो जब मैं अपने उत्तर पोस्ट, मैं वह भी एक पोस्ट होगा उम्मीद कर रहा था - वह मुझे आशा :) निराश नहीं किया
इज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.