您的位置:首页 > 移动开发 > Android开发

开关机铃声——android系统属性的使用

2013-08-23 16:28 267 查看
开机涉及到的文件在framework/base/cmds/bootAnimation.cpp

关机文件在shutdownThread.java中可以找到相关的代码(包括关机、重启、静音等模式的选择)

下面具体说说怎么利用系统熟悉在开关机的时候设置是否需要开关机铃声。

首先需要设置一个系统属性。添加路径:路径:system/core/rootdir/int.rc,按照需求的不同在不同的位置添加,这里就在on
post-fs-data下添加一个。

例如:setprop persist.sys.onoffsounds 1
;//初始值是1

要注意,这个属性是以persist.sys打头,不同的打头有不同的权限:

特别属性

如果属性名称以“ro.”开头,那么这个属性被视为只读属性。一旦设置,属性值不能改变。 如果属性名称以“persist.”开头,当设置这个属性时,其值也将写入/data/property。

如果属性名称以“net.”开头,当设置这个属性时,“net.change”属性将会自动设置,以加入到最后修改的属性名。(这是很巧妙的。 netresolve模块的使用这个属性来追踪在net.*属性上的任何变化。)

属性“ ctrl.start ”和“ ctrl.stop ”是用来启动和停止服务。每一项服务必须在/init.rc中定义.系统启动时,与init守护进程将解析init.rc和启动属性服务。一旦收到设置“ ctrl.start ”属性的请求,属性服务将使用该属性值作为服务名找到该服务,启动该服务。这项服务的启动结果将会放入“ init.svc.<服务名>“属性中 。客户端应用程序可以轮询那个属性值,以确定结果

具体详细,详看system/core/init/property_service.c

设置好了系统属性,下面我们来获取这个属性。在framework里常常使用SystemProperties.get();和SystemProperties.set();来获取和设置系统属性,实际上这两个方法是通过JNI层调用底层的property_get(),和property_set()方法。

一般情况下,添加开关机铃声,我们会在setting的sound下添加一个复选框,当复选框改变状态时通过SystemProperties.set();或者改变系统属性persist.sys.onoffsounds的值,最后在开机和关机的时候根据persist.sys.onoffsounds的值来判断是否需要调用铃声。到这里就OK啦,具体操作大神们到代码去看看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: