2013-04-29 21 views
17

Paylaşılan UserID'e sahip iki uygulama, birbirlerine, çizim veya ip gibi kaynaklar erişebilir mi?Paylaşılan UserID ile iki uygulama

Birbirlerine varlıklara erişebilirler mi?

diğer bileşenlerini etkinleştirmek veya devre dışı bırakabilir miyim?

Bunlardan herhangi bunu yapılmalıdır nasıl açıklayınız mümkünse

.

Ben çok arandı fakat userId paylaşımı hakkında herhangi bir örnek bulamadık.

+0

yinelenen: //stackoverflow.com/questions/9783765/what-is-shareduserid-in-androidhow-can-i-used-shareduserid – bleater

cevap

43

Başvurunuzun payı başka bir uygulama ile aynı kullanıcı kimliği izin AndroidManifest.xml android:sharedUserId kullanabilirsiniz.

android:

diğer uygulamalar paylaşılacak Linux kullanıcı kimliğinin adı sharedUserId. Varsayılan olarak, Android her uygulamaya kendi benzersiz kullanıcı kimliğini atar. Ancak, bu özellik iki veya daha fazla uygulama için ile aynı değere ayarlanmışsa, aynı sertifika tarafından da imzalanmış olmaları koşuluyla aynı ID - 'u paylaşacaklardır. Aynı kullanıcı ID'sine sahip uygulama, birbirlerinin verilerine erişebilir ve isteniyorsa, aynı işlemde çalışır. ihtiyaç duydukları

Bildirim aynı sertifikası tarafından imzalanacak.

İki uygulama aynı kullanıcı kimliği birbirlerinin kaynaklara erişebilir paylaşır.

Örneğin:

<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"> 

Sonra tarafından com.example yeni bir bağlam init edebilirsiniz:

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

Ve bu uygulamanın bazı kaynaklara erişim: http

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

Ben android.content.pm.PackageManager $ NameNotFoundException alıyorum: Uygulama paketi com.ornek bulunamadı. Tam paket adını mı kastettin? – coyer

İlgili konular