2013-04-29 9 views
17

के साथ दो ऐप साझा उपयोगकर्ता आईडी के साथ दो ऐप ड्रॉबल्स या स्ट्रिंग जैसे अन्य संसाधनों तक पहुंच सकते हैं?साझा उपयोगकर्ता आईडी

क्या वे एक-दूसरे की संपत्तियों तक पहुंच सकते हैं?

क्या वे दूसरे के घटकों को सक्षम या अक्षम कर सकते हैं?

यदि इनमें से कोई भी संभव है तो कृपया समझाएं कि यह कैसे किया जाना चाहिए।

मैंने बहुत कुछ खोजा लेकिन उपयोगकर्ता साझाकरण के बारे में कोई उदाहरण नहीं मिला।

+0

डुप्लिकेट: //stackoverflow.com/questions/9783765/what-is-shareduserid-in-androidhow-can-i-used-shareduserid – bleater

उत्तर

43

आप एंड्रॉइडManifest.xml में android:sharedUserId का उपयोग कर सकते हैं ताकि आपके एप्लिकेशन को एक ही उपयोगकर्ता आईडी के साथ अन्य एप्लिकेशन साझा किया जा सके।

एंड्रॉयड:

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

ध्यान दें कि उन्हें एक ही प्रमाणपत्र द्वारा हस्ताक्षरित होने की आवश्यकता है।

दो एप्लिकेशन एक ही उपयोगकर्ता आईडी साझा करते हैं जो एक-दूसरे के संसाधन तक पहुंच सकते हैं।

उदाहरण के लिए:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.shareusertesta" 
    android:versionCode="1" 
    android:versionName="1.0" 
    android:sharedUserId="com.example"> 

तो हम द्वारा com.example का एक नया संदर्भ init कर सकते हैं:

Context friendContext = this.createPackageContext("com.example",Context.CONTEXT_IGNORE_SECURITY); 

और उस आवेदन के कुछ संसाधनों का उपयोग:

http की
friendContext.getResources().getString(id); 
friendContext.getResources().getDrawable(id); 
friendContext.registerReceiver(...); 
+0

मुझे 'android.content.pm.PackageManager $ NameNotFoundException मिलता है: एप्लिकेशन पैकेज com.example नहीं मिला '। क्या आपका पूरा पैकेज नाम था? – coyer

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