Ответ 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(...);