如何在不同的android應用之間傳遞資料?,android傳遞
如果你做android的framework的開發,往往會涉及到不同應用之間的配合,需要讀取或修改某個共用的資料。
這時你可以用到下面兩個類來解決問題,這兩個類的使用在framework也有經常出現。
SystemProperties,Settings.System
1.SystemProperties的使用。
在framework中,SystemProperties,常用來讀取或修改系統屬性,使用該方法可以給系統添加屬性。
其中讀取方法為Systemproperties.get(name),修改屬性的方法為Systemproperties.set(name, value)。屬性的名稱是有一定規則的,名字的首碼要按照system\core\init\property_service.c中定義的格式來寫,
下面是service中選取的規則:
{ "net.rmnet0.", AID_RADIO }, { "net.gprs.", AID_RADIO }, { "ril.", AID_RADIO }, { "gsm.", AID_RADIO }, { "net.dns", AID_RADIO }, { "net.usb0", AID_RADIO }, { "net.", AID_SYSTEM }, { "dev.", AID_SYSTEM }, { "runtime.", AID_SYSTEM }, { "hw.", AID_SYSTEM }, { "sys.", AID_SYSTEM }, { "service.", AID_SYSTEM }, { "wlan.", AID_SYSTEM }, { "dhcp.", AID_SYSTEM }, { "dhcp.", AID_DHCP }, { "debug.", AID_SHELL }, { "log.", AID_SHELL }, { "service.adb.root", AID_SHELL }, { "persist.sys.", AID_SYSTEM }, { "persist.service.", AID_SYSTEM }, { NULL, 0 }android系統對調用該函數的方法有許可權要求:
a.在AndroidManifest檔案中要加入 android:sharedUserId="android.uid.system"
b.在Android.mk中,設定LOCAL_CERTIFICATE:=platform。
2.Settings.system的使用。
這個是Settings中經常使用的類,用來讀取和修改Settings的屬性,Settings屬性的修改通常都會影響手機的全域功能。所以某種程度中,你可以用System.system來作為系統屬性設定類。
讀取方法為Settings.System.getInt(contentResolver, name, value);設定或修改屬性方法為Settings.System.putInt(contentResolver, name, value);
這種方式儲存的資料存放在Settings的資料庫中,Settings中很多設定是通過這種方法儲存的,例如飛航模式。
使用該方法需要在AndroidManifest註冊許可權
<uses-permission android:name=”android.permission.WRITE_SETTINGS” />