Android set(get) Umwelt-Variablen in Java
Habe ich experimentierte etwas mit Android OS, und ich versuchte zu rufen System.getenv()
Umwelt-Variablen. Es funktioniert z.B. für $PATH
, aber ich war nicht in der Lage zu definieren eigener Variablen, die zugänglich sein können, auf diese Weise... Ist es möglich?
Habe ich versucht, zu setzen und zu export
Variablen aus der adb shell als shell
Benutzer, aber es funktioniert nicht - egal ob ich die Anwendung aus dem Telefon-Menü oder wenn ich in der adb shell am
Befehl.
Können die Runtime.getRuntime().exec()
helfen? Wird es helfen, wenn ich root
Zugriff auf das Telefon?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Umgebungsvariablen sind nur sichtbar in einem Prozess, legt die variable und Kind-Prozesse gestartet, nachdem Sie die Einstellung der variable. Wenn Sie die Umgebungsvariable über die adb-shell, die Sie nicht in der Eltern-Prozess den Prozess, startet der Android-Anwendung, damit die Anwendung nicht sehen können, die Variablen, die Sie festlegen.
In Java (Android) gibt es keine
System.setenv()
, aber wenn müssen Sie eine Umgebungsvariable definieren, die für Ihr eigenes Programm zu Lesen, es gibt immer bessere Möglichkeiten. Eine solche Art ist festlegen und abrufen von Eigenschaften statt.Setzen von environment-Variablen in Java ist eigentlich nicht möglich (gut, es ist, aber Sie wollen nicht, es zu tun). Sie können ProcessBuilder wenn Sie möchten, um eine variable zu setzen, dass ein anderer Prozess Lesen sollten, aber das ist, wenn der Prozess, gestartet von einem Java - /Android-Programm.
Denken über das, was problem, das Sie versuchen zu lösen, und wenn es getan werden kann, ohne Verwendung von Umgebungsvariablen. Sie sind nicht eine gute Passform in Java, und die sind noch schlimmer auf Android.
Ist es möglich das setzen von Umgebungsvariablen in Android-Anwendungen. Allerdings, wie @richq sagte, diese Variablen werden nur dann sichtbar, in der die Prozesse gestartet werden die Anwendung, legen Sie die Umgebungsvariable (und JNI Bibliotheken, die von der Anwendung verwendet).
Finden Sie in diesem Beitrag für die in Bezug auf das setzen von environment-Variablen aus Android-Anwendung:
https://stackoverflow.com/a/22315463/927592
Android-API-21 bietet eine Möglichkeit zum einstellen der Umgebungsvariablen. Zum festlegen einer Umgebungsvariable, rufen Sie
Os.setenv
.Sehen diese android.system.Os Dokumentation und das setenv(3) Dokumentation.
Jeder Prozess besitzt eine eigene Umgebung, die kopiert wird von der übergeordneten Prozess-Umgebung. Also die Umgebungsvariablen sind pro Prozess.