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