android-需求(四):對系統是否有特定的模塊

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章