android-需求(四):对系统是否有特定的模块

来源:互联网 发布:网络渗透技术培训 编辑:程序博客网 时间:2024/05/22 23:35

android4.0 及以上 版本里 ,如果在settings下看不到wifi和bluetooth两个菜单选项,这是因为在setting里,对系统是否有特定的模块加上了判断,如果没有就不显示。android4.0的模块判断函数:getPackageManager().hasSystemFeature(String string).通过该函数判断系统是否有特定的模块功能。

 例如判断是否有 wifi 和 蓝牙模块的具体代码:

getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI);

getPackageManager().hasSystemFe(PackageManager.FEATURE_BLUETOOTH);

PackageManager这些字符串 存在system/etc/permissions/xxxx.xml文件里,它们一般从/framework/base/data/etc/xxx.xml复制过来。

eg:

PackageManager.java中

从trunk\frameworks\base\data\etc\android.hardware.camera.xml复制。

解决wifi和蓝牙不显示方法:

一、直接把包含对应 feature 的xml文件复制到system/etc/permissions/目录下,相当于加上系统所具有的具体模块的功能配置文件;

、直接把Settings.java(packages/app/Settings/com.android.settings)里onBuildHeaders里的updateHeaderList(headers)注释掉,相当于去掉判断条件。

======================================================================================================================================

转载:http://blog.csdn.net/wh_19910525/article/details/8518341

原创粉丝点击