如何在不同的android应用之间共享数据?
2015-02-07 23:38
465 查看
如果你做android的framework的开发,往往会涉及到不同应用之间的配合,需要读取或修改某个共享的数据。
这时你可以用到下面两个类来解决问题,这两个类的使用在framework也有经常出现。
SystemProperties,Settings.System
其中读取方法为Systemproperties.get(name),修改属性的方法为Systemproperties.set(name, value)。属性的名称是有一定规则的,名字的前缀要按照system\core\init\property_service.c中定义的格式来写,
下面是service中选取的规则:
a.在AndroidManifest文件中要加入 android:sharedUserId="android.uid.system"
b.在Android.mk中,设置LOCAL_CERTIFICATE:=platform。
读取方法为Settings.System.getInt(contentResolver, name, value);设置或修改属性方法为Settings.System.putInt(contentResolver, name, value);
这种方式保存的数据存放在Settings的数据库中,Settings中很多设置是通过这种方法保存的,例如飞行模式。
使用该方法需要在AndroidManifest注册权限
这时你可以用到下面两个类来解决问题,这两个类的使用在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” />
相关文章推荐
- android 利用SharedPreferences 在不同应用之间共享数据
- Android sharedPreferences基本用法和用于两个应用之间共享数据
- Android 不同应用通过SharedPreference实现共享数据
- Android之用sharedUserId来实现不同应用(APK)数据共享
- Android 不同应用通过SharedPreference实现共享数据
- [一问一答][Android] 如何在两个Activity之间传递(共享)数据
- Unity应用架构设计(5)——ViewModel之间如何共享数据
- Android 不同应用通过SharedPreference实现共享数据
- android中不同activity之间共享数据
- 在不同的Web应用之间共享数据
- android不同Activity之间的数据共享
- Android应用之间的数据共享
- Android不同APP之间共享数据的方式
- 【Android】不同App之间通过SharedPreference共享数据
- 在不同应用之间共享数据ContentProvider,ContentResolver
- android ContentProvider简单实现不同应用间的数据共享
- Android中不同activity之间数据的共享
- android中不同activity之间共享数据
- 不同应用之间共享数据!