22

共有 UserID を持つ 2 つのアプリは、ドローアブルや文字列などの他のリソースにアクセスできますか?

お互いのアセットにアクセスできますか?

他のコンポーネントを有効または無効にできますか?

これらのいずれかが可能な場合は、どのように行う必要があるかを説明してください。

よく検索しましたが、userId の共有に関する例は見つかりませんでした。

4

1 に答える 1

49

AndroidManifest.xml で を使用android:sharedUserIdして、アプリケーションが同じユーザー ID を別のアプリケーションと共有できるようにすることができます。

アンドロイド:共有ユーザーID

他のアプリケーションと共有される Linux ユーザー ID の名前。デフォルトでは、Android は各アプリケーションに固有のユーザー ID を割り当てます。ただし、この属性が 2 つ以上のアプリケーションで同じ値に設定されている場合、同じ証明書によって署名されている場合、それらはすべて同じ ID を共有します。同じユーザー ID を持つアプリケーションは、互いのデータにアクセスでき、必要に応じて同じプロセスで実行できます。

同じ証明書で署名する必要があることに注意してください。

同じユーザー ID を共有する 2 つのアプリケーションは、互いのリソースにアクセスできます。

例えば:

<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

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

そして、そのアプリケーションのいくつかのリソースにアクセスします:

friendContext.getResources().getString(id);
friendContext.getResources().getDrawable(id);
friendContext.registerReceiver(...);
于 2013-04-29T02:44:35.263 に答える