如何在不同的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” />
时间: 2024-10-26 20:27:07

如何在不同的android应用之间传递数据?的相关文章

Android 笔记-Fragment 与 Activity之间传递数据

Fragment 与 Activity之间传递数据有两种方法,一种是使用setArgument,一种是使用接口回调.下面先学习第一种方法. (1)使用setArgument方法: 为了便于理解,我在这里打个比喻:假如Activity是皇帝,它设立了三个部门(如三省六部),分别是Fragment1,Fragment2和Fragemnt3: 现在他现在要吩咐部门Fragment1去做一些事情,比如说:领兵攻打岛国!!好,它肯定不自己跑去告诉该部门的. 一般来说,会有个宰相或者太监总管来负责皇帝口谕是

android中使用Intent在activity之间传递数据

android中intent传递数据的简单使用: 1.使用intent传递数据: 首先将需要传递的数据放入到intent中 Intent intent = new Intent(MainActivity.this,OtherActivity.class); intent.putExtra("name", "使用Intent传递数据"); startActivity(intent); 然后再目标activity中接收数据: Intent intent=getInten

Android笔记Fragment与Activity之间传递数据

Fragment 与 Activity之间传递数据有两种方法,一种是使用setArgument,一种是使用接口回调.下面先学习第一种方法. (1)使用setArgument方法: 为了便于理解,我在这里打个比喻:假如Activity是皇帝,它设立了三个部门(如三省六部),分别是Fragment1,Fragment2和Fragemnt3: 现在他现在要吩咐部门Fragment1去做一些事情,比如说:领兵攻打岛国!!好,它肯定不自己跑去告诉该部门的. 一般来说,会有个宰相或者太监总管来负责皇帝口谕是

Android页面之间进行数据回传

Android页面之间进行数据回传 要求:页面1跳转到页面2,页面2再返回页面1同时返回数据 页面1添加如下代码: Intent intent = new Intent(); intent.setClass(页面1.this, 页面2.class); Bundle bundle = new Bundle(); intent.putExtras(bundle);//将Bundle添加到Intent,也可以在Bundle中添加相应数据传递给下个页面,例如:bundle.putString("abc&

mvc如何使用JavaScript在view和controller之间传递数据

在一般的BS项目开发中,我们经常需要在前台和后台之间传递数据,mvc架构中,也需要在view和controller之间传递数据,那么我们应该如何实现呢? view想controller传递数据:view中代码 <li>@Html.ViewComponent().WfSaveLink(Model).Id("saveToLink").OnBeforeDo("externalData")</li> <scriptlanguage="

在ViewController之间传递数据的方法【iOS】

在ViewController之间传递数据的方法有不少,博主这里总结两种最常用的方法给大家: 我们假设有 视图控制器A 和 视图控制器B,其中我们设视图控制器B 是由 视图控制器A通过Navigation controller Push过去的,也就是说视图控制器B是视图控制器A的子视图控制器. 下面我们就分别通过 A->B 和 B->A传递数据说明两种在视图控制器之间传递数据的方法. 1.由视图控制器A传递数据给视图控制器B 这里,我的视图控制器A是 ViewController 视图控制器B

【MVC架构】——怎样利用Json在View和Controller之间传递数据

在MVC架构中,尽管非常多东西和三层非常相似,可是也有非常大的差别.就比方传递数据.在三层架构中,传递数据就仅仅要一层返回,另外一层用同样类型的变量来接收即可了.在MVC中,事实上原理是一样的,Controller中的方法返回Json字符串.然后View来接收.或者反过来,不同的就是这之间须要一个序列化和反序列化的过程. 本文就简介利用Json在View和Controller之间传递数据的一个方面,大致从双方面介绍,一是什么是Json,二是怎样实现. 什么是Json 一.概念 百度百科说:JSO

Activity之间传递数据的方式及常见问题总结

转载请注明:大飞 http://blog.csdn.net/rflyee/article/details/47431633 Activity之间传递数据一般通过以下几种方式实现: 1. 通过intent传递数据 2. 通过Application 3. 使用单例 4. 静态成员变量.(可以考虑 WeakReferences) 5. 持久化(sqlite.share preference.file等) 一.通过intent传递数据 (1)直接传递,intent.putExtra(key, value

ios 页面跳转之间传递数据----通过delegate

主要参考了这篇博客http://mobile.51cto.com/iphone-284116.htm 主要用到了,两个类,一个delegate a类,调用b类,当b类执行之后,需要把一个数据传递给a类,a类把这个数据显示出来. 1.delegate,就这一个头文件就足够了.在类中去实现这个代理方法 #import <Foundation/Foundation.h> @protocolUIViewPassValueDelegate - (void)passValue:(NSString*)val