閱讀91 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Android SystemProperties和Settings.System介紹

Android SystemProperties和Settings.System介紹,不同應用間傳遞信息
1 使用 SystemProperties.get
這中方法在framework裏麵 經常見到。
特別屬性
如果屬性名稱以“ro.”開頭,那麼這個屬性被視為隻讀屬性。一旦設置,屬性值不能改變。
如果屬性名稱以“persist.”開頭,當設置這個屬性時,其值也將寫入/data/property。
在c++中就是對應JAVA的兩個函數就是property_set, property_get,其實JAVA是通過JNI調用這兩個函數的。
JAVA
import android.os.SystemProperties;
SystemProperties.set("persist.sys.language", zone.getID());
String lang= SystemProperties.get("persist.sys.language");
C
#include <cutils/properties.h>
property_set("persist.sys.language", "zh");
property_get("persist.sys.language", propLang, "en");
在adb shell可以通過以下的命名讀取和修改
#getprop  persist.sys.language
#setprop   persist.sys.language  zh
2 使用 Settings.System.putInt 
這種方式會保存變量到Settings 數據庫中,飛行模式等的開關就是用這種方式實現的。
在AndroidManifest.xml中包含權限:
<uses-permission android:name=”android.permission.WRITE_SETTINGS” />
在需要發送數據的java文件中,包含:
import android.provider.Settings;
import android.content.ContentResolver;
ContentResolver resolver = mContext.getContentResolver();
Settings.System.putInt(resolver,”inputFlag”,1);
同理,在接收數據端:
Settings.System.getInt(resolver,”inputFlag”,3);
mContext為所在應用的上下文。

最後更新:2017-04-03 16:48:32

  上一篇:go Java實現遞歸經典案例——三角數字的多種實現方式
  下一篇:go C# 網絡編程之獲取本機名、ip地址、域名、物理位置