簡體   English   中英

如何在Android中設置環境變量?

[英]How to set an environment variable in Android?

我正在開展一個項目,在該項目中我使用 Android 操作系統為零售店開發自助服務終端應用程序。 出於我的目的,我需要能夠在 Android 設備上設置一個環境變量:

  1. 獨立於任何應用程序;
  2. 在應用程序和系統重新啟動后是持久的。

獎勵:如果我可以從 adb 設置變量,那就更好了。

令人驚訝的是,事實證明這比預期的要困難得多。

  1. SharedPreferences不會削減SharedPreferences ,因為該變量取決於創建它的應用程序。
  2. Os.setenv設置一個變量,一旦應用程序關閉或重新啟動,該變量就會被擦除。
  3. adb shell export似乎根本沒有效果。

有人解決過這個問題嗎?

如果您想使用 Android 框架/以 Android 方式向其他 Android 應用程序公開數據,則可以使用ContentProvider 或者,如果您有 root 訪問權限並且更喜歡 adb,那么您可以使用setpropgetprop

$ adb shell setprop my.random.prop ok
$ adb shell getprop my.random.prop //outputs "ok"

如果您有權訪問 Android 源代碼,您可以向init.rc添加一個命令,該命令在啟動時運行它。 或者,您可以在data/local等位置創建文件?

編輯:阿蘭在評論中指出,將persist性添加到屬性(即persist.device.id )允許它在重新啟動后繼續存在。

這樣做以將使用 android studio 設置為應用程序級別的build.gradle

將您的值文件粘貼到src/main/res/raw文件夾中

task copySecretKey(type: Copy) {
    def File secretKey = file "$System.env.YOUR_VARIABLE"
    from secretKey.getParent()
    include secretKey.getName()
    into 'src/main/res/raw'
    rename secretKey.getName(), "VALUE_OF_VARIABLE_FROM_RAW_FILE" // in my case it is credential.json
}
preBuild.dependsOn(copySecretKey)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM