Подтвердить что ты не робот

Два приложения с общим идентификатором пользователя

Может ли два приложения с общим доступом UserID получить доступ к другим ресурсам, например, drawables или string?

Могут ли они получить доступ к другим ресурсам?

Могут ли они включать или отключать другие компоненты?

Если это возможно, объясните, как это должно быть сделано.

Я много искал, но не смог найти никакого примера о совместном использовании userId.

4b9b3361

Ответ 1

Вы можете использовать android:sharedUserId в AndroidManifest.xml, чтобы ваше приложение имело один и тот же идентификатор пользователя с другим приложением.

Android: sharedUserId

Имя идентификатора пользователя Linux, который будет использоваться совместно с другими Приложения. По умолчанию Android назначает каждое приложение своим собственным уникальный идентификатор пользователя. Однако, если для этого атрибута установлено одно и то же значение для двух или более приложений, все они будут иметь один и тот же идентификатор - при условии, что они также подписаны одним и тем же сертификатом. Приложение с одним и тем же идентификатором пользователя может обращаться к другим данным и, если желательно, запустить в том же процессе.

Обратите внимание, что они должны быть подписаны одним и тем же сертификатом.

Два приложения, имеющие один и тот же идентификатор пользователя, могут обращаться к другому ресурсу.

Например:

<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(...);