具有共享 UserID 的两个应用程序可以访问其他资源,如可绘制对象或字符串吗?
他们可以访问彼此的资产吗?
他们可以启用或禁用另一个组件吗?
如果其中任何一个是可能的,请解释它必须如何完成。
我搜索了很多,但找不到任何有关 userId 共享的示例。
具有共享 UserID 的两个应用程序可以访问其他资源,如可绘制对象或字符串吗?
他们可以访问彼此的资产吗?
他们可以启用或禁用另一个组件吗?
如果其中任何一个是可能的,请解释它必须如何完成。
我搜索了很多,但找不到任何有关 userId 共享的示例。
您可以android:sharedUserId
在 AndroidManifest.xml 中使用,让您的应用程序与另一个应用程序共享相同的用户 ID。
安卓:sharedUserId
将与其他应用程序共享的 Linux 用户 ID 的名称。默认情况下,Android 会为每个应用程序分配其自己的唯一用户 ID。但是,如果两个或多个应用程序的此属性设置为相同的值,则它们都将共享相同的 ID — 前提是它们也由相同的证书签名。具有相同用户 ID 的应用程序可以访问彼此的数据,并且如果需要,可以在同一进程中运行。
请注意,它们需要由相同的证书签名。
两个应用程序共享相同的用户 id 可以访问彼此的资源。
例如:
<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(...);