2016-06-20 9 views
2

Ich habe eine Anforderung, die für meine zwei signierte App mit gleichen Zertifikaten in Android-Gerät installiert sind. Wenn es eine Sache gibt, ändern Sie App A, App B sollte für dasselbe und Umgekehrt benachrichtigen. Ist es möglich, es trotzdem zu erledigen?Android - Verwenden Sie gemeinsame Variable in zwei App

Dank

+0

Haben Sie bei ausgesehen? https://developer.android.com/training/sharing/send.html – Jaxian

+0

Hallo Jaxian, Daten zwischen beiden App teilen will nicht senden. Es sollte funktionieren, gemeinsame Daten zu teilen. – Pankaj

Antwort

0
+0

Ja, ich stimme der Verwendung von Android Content Provider zu, sogar ich hatte eine bessere Lösung, dass ich die gemeinsame Präferenz verwenden und in App A speichern und in App B mit Code lesen kann Context con = createPackageContext ("com.xyz.data ", 0); Aber es wird immer ein Sicherheitsrisiko für App-Daten geben. Im Inhaltsanbieter können wir nicht darauf beschränken, dass andere Apps Daten lesen, wenn sie exportiert werden = true. Es ist nicht? – Pankaj

+0

Sie haben Recht, Ihre App könnte ihre eigene Berechtigung und ihre interne Logik haben, um Daten zwischen Anbietern zu teilen. Wenn exportierte = wahr, könnte eine andere App mit der installierten Berechtigung möglicherweise die Daten Ihrer App lesen. – lubilis

0

Jedes App-Paket als Linux-Prozess mehr App-Pakete laufen können als Teil eines Prozesses Verwenden android ausgeführt verwenden studieren können: sharedUserId in Manifest von 2 Apps, um sie als Teil der gleichen größeren Anwendung auszuführen

Beide Apps müssen mit dem gleichen Zertifikat signiert werden App2 will rea d Daten von app1 so braucht es Informationen zur Installation von App1

den Package Manager Holen Sie mit getPackageManager() von Context-Klasse Package Manager enthalten verschiedene Arten von Informationen im Zusammenhang mit den Anwendungspaketen, die derzeit auf dem Gerät installiert werden Anruf Application

getApplicationInfo(String packageName,int flags) 

von Paket-Manager 1 alle Informationen über App abzurufen

+0

Daten, die ich teilen möchte, um dynamisch entweder in Variablen oder gemeinsamen Präferenzen/db gespeichert zu werden. Meinen Sie, dass das Definieren von android: sharedUserId Sicherheit in Bezug auf den Zugriff bietet, die keine andere App verwenden kann, usw. Auch wenn wir den Paketnamen der App kennen? Unter Verwendung von Code kann ich Kontext abrufen und kann dann gespeicherte DB oder Präferenz abrufen. Kontext con = createPackageContext ("com.xyz.data", 0) – Pankaj

+0

andere App wird nicht dieselbe sharedUser ID haben, daher kann sie nicht auf Daten zugreifen Angenommen, Sie speichern Daten in einer Datei mit FileOutputStream Jetzt App A und App B haben die gleiche sharedUserId, so dass sie auf die Daten zugreifen können, die andere Anwendungen nicht können –

Verwandte Themen