首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

1.系统属性获取及设立中的设置值

2012-08-25 
1.系统属性获取及设置中的设置值1.系统属性获取及设置android.os.SystemProperties文件android.os.Build文

1.系统属性获取及设置中的设置值

1.系统属性获取及设置

android.os.SystemProperties文件

android.os.Build文件

可以取得系统版本等信息。

类似adb shell : getprop看到的值

?

2.设置中的设置值

在android中,许多的系统属性都在settings应用当中进行设置的,比如wifi、蓝牙状态,当前本机语言,屏幕亮度等等一些相关的系统属性值。这些数据主要是存储在数据库中,对应的URI 为:content://settings/system和content://settings/secure,这两个是主要的,目前也只是涉及到这两个数据库表的使用。

  接下来,就了解下settings应用中是如何对系统属性进行设置的。

  当需要获得当前wifi状态的值,调用已封装的方法如下:

  Settings.Secure.getInt(getContentResolver() , Settings.Secure.WIFI_ON);

  修改wifi状态只需要调用对应的setInt方法就可以实现。

  当需要获得当前时间日期自动获取,调用如下:

  Settings.System.getInt(getContentResolver() , "auto_time");

  修改也是调用对应的setInt方法。

  注意:这里修改settings的系统属性值需要有相关的权限。如修改wifi状态需要有android.permission.WRITE_SETTINGS权限,权限问题只要参考sdk下的描述就可以。

  其实在settings应用中所获取或者修改属性都是调用了framework中android.provider.settings的Settings类对应的方法,也就是说真正有跟数据库打交道的是在provider中,这里也体现了ContentProvider的用途。

  就大体说下android.provider.settings.Settings这个类吧。Settings里面创建了包含System和Secure在内的几个内部类,每个内部类都对应了一张数据库表,也就是继承自BaseColumns类,System和Secure类分别对应着system和secure数据库表。

  对于上面通过getInt获得的字段,其实是在初始获得数据库数值的时候,首先是有getString方法将数据库数据保留,然后在integer.parseInt将数据转换成int类型。这就是settings读取和保留数据的基本原理。

1 楼 rambo_milestone 2011-09-15   请教下: 文中说的: “注意:这里修改settings的系统属性值需要有相关的权限。如修改wifi状态需要有android.permission.WRITE_SETTINGS权限,权限问题只要参考sdk下的描述就可以。”    确定加了write_settings权限就可以修改么   我加了权限还是改不了。  特别是想修改secure中的proxy时,就算加了权限也还是提示没有改权限。根本无法修改。怎么办~~~~ 2 楼 anson_xu 2011-09-15   rambo_milestone 写道请教下: 文中说的: “注意:这里修改settings的系统属性值需要有相关的权限。如修改wifi状态需要有android.permission.WRITE_SETTINGS权限,权限问题只要参考sdk下的描述就可以。”    确定加了write_settings权限就可以修改么   我加了权限还是改不了。  特别是想修改secure中的proxy时,就算加了权限也还是提示没有改权限。根本无法修改。怎么办~~~~
可以考虑把你的apk做系统签名
java -jar signapk.jar platform.x509.pem platform.pk8 xxx.apk yyy.apk

热点排行