Können zwei Apps mit gemeinsamer UserID auf Ressourcen wie Drawables oder Strings zugreifen?
Können sie auf die Vermögenswerte des anderen zugreifen?
Können sie Komponenten des anderen aktivieren oder deaktivieren?
Wenn irgendetwas davon möglich ist, erklären Sie bitte, wie es gemacht werden muss.
Ich habe viel gesucht, konnte aber kein Beispiel für das Teilen von Benutzer-IDs finden.
Sie können verwenden android:sharedUserId
in AndroidManifest.xml, damit Ihre Anwendung dieselbe Benutzer-ID mit einer anderen Anwendung teilt.
android:sharedUserId
Der Name einer Linux-Benutzer-ID, die mit anderen Anwendungen geteilt wird. Standardmäßig weist Android jeder Anwendung eine eigene eindeutige Benutzer-ID zu. Wenn dieses Attribut jedoch für zwei oder mehr Anwendungen auf denselben Wert gesetzt wird, teilen sie sich alle dieselbe ID – vorausgesetzt, sie sind auch mit demselben Zertifikat signiert. Anwendungen mit derselben Benutzer-ID können auf die Daten der anderen zugreifen und, falls gewünscht, im selben Prozess laufen.
Beachten Sie, dass sie mit demselben Zertifikat signiert sein müssen.
Zwei Anwendungen, die sich dieselbe Benutzer-ID teilen, können auf die Ressource des jeweils anderen zugreifen.
Zum Beispiel:
<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">
Dann können wir einen neuen Kontext von initieren com.example
durch:
Context friendContext = this.createPackageContext( "com.example",Context.CONTEXT_IGNORE_SECURITY);
Und greifen Sie auf einige Ressourcen dieser Anwendung zu:
friendContext.getResources().getString(id);
friendContext.getResources().getDrawable(id);
friendContext.registerReceiver(...);
Duplikat von stackoverflow.com/questions/9783765/…
– Bläser
4. November 2013 um 23:42 Uhr