android प्रदाता के डेटा का उपयोग करने के लिए कन्टैंट प्रदाता के एप्लिकेशन ग्राहक अनुमतियों को किस प्रकार निर्दिष्ट करते हैं?



permissions android-manifest (1)

पृष्ठभूमि

मैं एंड्रॉइड कंटेंट प्रोवाइडर्स पर इस ट्यूटोरियल को पढ़ रहा हूं। मैं इस ट्यूटोरियल से समझता हूं कि,

किसी अन्य सामग्री के प्रदाता के डेटा तक पहुंचने के लिए अन्य अनुप्रयोगों के लिए, प्रदाता एप्लिकेशन को उस अनुमति को निर्दिष्ट करना चाहिए जो क्लाइंट एप्लिकेशन को उसके प्रदाता के डेटा तक पहुंचने की आवश्यकता होती है।

क्लाइंट एप्लिकेशन उन मैथिस्ट फाइल में आवश्यक अनुमतियों को निर्दिष्ट करते हैं, जो कि <uses-permission> तत्व, जैसे

<uses-permission android:name="android.permission.READ_USER_DICTIONARY" > <!-- In the client app's manifest -->

फिर एपीके प्रबंधक उपयोगकर्ता की अनुमति से इन अनुमतियों (ग्राहक एप में) पूछता है जब उपयोगकर्ता ग्राहक अनुप्रयोग को स्थापित कर रहा है।

सवाल

मेरा प्रश्न यह है कि कैसे प्रदाता (ऐप) उस प्रमेय को निर्दिष्ट करता है जो प्रदाता के डेटा तक पहुंचने के लिए अन्य क्लाइंट ऐप्स को दिए जाने चाहिए?

डेवलपर मार्गदर्शिका से ,

प्रदाता द्वारा उपयोग किए जाने वाले प्रदाता के लिए पढ़ने के लिए अनुमति के सटीक नाम का पता लगाने के लिए, साथ ही प्रदाता द्वारा उपयोग किए जाने वाले अन्य एक्सेस अनुमतियों के नाम , प्रदाता के दस्तावेज़ीकरण में देखें

प्रदाता के प्रलेख में - क्या प्रदाता एप में उन अनुमतियों को निर्दिष्ट करने का तरीका है? यदि हां, तो वह दस्तावेज कहां पाया जाता है? SearchableDictionary प्रदाता (ट्यूटोरियल में एक उदाहरण के रूप में उपयोग किया गया) के लिए मैं उस दस्तावेज़ को कहां प्राप्त कर सकता हूं, और अगर मैं अपने ऐप में कोई सामग्री प्रदाता लिखता हूं, तो मुझे उस दस्तावेज़ को कहां प्रदान करना चाहिए?


प्रदाता एप के एंड्रॉइड मैनिफ़ेस्ट। एक्सएमएल में अनुमति परिभाषित करें

<permission
    android:name="com.myapp.PERMISSION"/>

प्रदाता एप्लिकेशन के AndroidManifest.xml में प्रदाता को परिभाषित करें

<provider
        android:name=".MyProvider"
        android:authorities="com.myapp.MyProvider.AUTHORITY"
        android:enabled="true"
        android:exported="true"
        android:multiprocess="true"
        android:readPermission="com.myapp.PERMISSION" />

क्लाइंट के AndroidManifest.xml में उपयोग-अनुमति टैग होना चाहिए

<uses-permission android:name="com.myapp.PERMISSION"/>

तब ग्राहक प्रदाता को एक्सेस कर सकता है

Cursor cursor = getContentResolver().query(
Uri.parse("content://com.myapp.MyProvider.AUTHORITY/xxx" ),null, null, null, null);




android-contentresolver