android4.0 及以上 版本 wifi 和 蓝牙不显示 原因
2014-01-07 16:16
369 查看
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复制过来。
PackageManager.FEATURE_BLUETOOTH = "android.hardware.wifi"
PackageManager.FEATURE_BLUETOOTH = "android.hardware.bluetooth"
解决wifi和蓝牙不显示方法:
一、直接把包含对应 feature 的xml文件复制到system/etc/permissions/目录下,相当于加上系统所具有的具体模块的功能配置文件;
二、修改product_copy.mk文件,添加相应的设备。
++++++++++++++++++++++++++++++++++++++++++
相关方法如下:
FeatureInfo[] PackageManager.getSystemAvailableFeatures()
boolean PackageManager.hasSystemFeature(String feature)
范例:
PackageManager pm = context.getPackageManager();
FeatureInfo[] features = pm.getSystemAvailableFeatures(); //得到所有支援的硬體種類
for (FeatureInfo feature : features) Log.v(TAG, feature.name);
boolean hasFlashlight = pm.hsaSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); //是否支援閃光燈
boolean hasCamera = pm.hsaSystemFeature(PackageManager.FEATURE_CAMERA); //是否支援相機
boolean hasBt = pm.hsaSystemFeature(PackageManager.FEATURE_BLUETOOTH); //是否支援藍牙
hasSystemFeature 這個接口參考信息是
/system/etc/permissions/android.hardware*.xml 文件中定義的feature的信息
/frameworks/base/data/etc/android.hardware.camera.flash-autofocus.xml
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<feature name="android.hardware.camera" />
<feature name="android.hardware.camera.autofocus" />
<feature name="android.hardware.camera.flash" />
</permissions>
例如判断是否有 wifi 和 蓝牙模块的具体代码:
getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI);
getPackageManager().hasSystemFe(PackageManager.FEATURE_BLUETOOTH);
PackageManager这些字符串 存在system/etc/permissions/xxxx.xml文件里,它们一般从/framework/base/data/etc/xxx.xml复制过来。
PackageManager.FEATURE_BLUETOOTH = "android.hardware.wifi"
PackageManager.FEATURE_BLUETOOTH = "android.hardware.bluetooth"
解决wifi和蓝牙不显示方法:
一、直接把包含对应 feature 的xml文件复制到system/etc/permissions/目录下,相当于加上系统所具有的具体模块的功能配置文件;
二、修改product_copy.mk文件,添加相应的设备。
++++++++++++++++++++++++++++++++++++++++++
相关方法如下:
FeatureInfo[] PackageManager.getSystemAvailableFeatures()
boolean PackageManager.hasSystemFeature(String feature)
范例:
PackageManager pm = context.getPackageManager();
FeatureInfo[] features = pm.getSystemAvailableFeatures(); //得到所有支援的硬體種類
for (FeatureInfo feature : features) Log.v(TAG, feature.name);
boolean hasFlashlight = pm.hsaSystemFeature(PackageManager.FEATURE_CAMERA_FLASH); //是否支援閃光燈
boolean hasCamera = pm.hsaSystemFeature(PackageManager.FEATURE_CAMERA); //是否支援相機
boolean hasBt = pm.hsaSystemFeature(PackageManager.FEATURE_BLUETOOTH); //是否支援藍牙
hasSystemFeature 這個接口參考信息是
/system/etc/permissions/android.hardware*.xml 文件中定義的feature的信息
/frameworks/base/data/etc/android.hardware.camera.flash-autofocus.xml
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<feature name="android.hardware.camera" />
<feature name="android.hardware.camera.autofocus" />
<feature name="android.hardware.camera.flash" />
</permissions>
相关文章推荐
- android4.0 及以上 版本 wifi 和 蓝牙不显示 原因
- Android4.0以上版本OptionsMenu无法显示图标的问题
- Android M版本彻底修改蓝牙wifi名称显示
- Android4.0以上版本OptionsMenu无法显示图标的问题
- 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题
- java -version 显示版本和JAVA_HOME配置的不一样的原因以及解决
- Android4.0以上版本 后台service跨进程截取当前屏幕总结
- JDK版本为5.0但java -version却显示版本号为1.4.2的原因
- [Android学习]对话框在android6.0以上版本不显示按钮文字
- SQL2005以上版本查询分析器显示行号设置方法
- Android4.0以上强制显示menu菜单按钮
- SQL2005以上版本查询分析器显示行号设置方法 收藏
- IE6及以上版本fixed问题解决方案,页面右下角固定页面,可以最大化、最小化、正规显示
- OpenCV 2.2版本以上显示图片到 MFC 的 Picture Control 控件中
- 解决Android 4.0以上版本中OptionsMenu菜单不显示ICON图标的问题
- OpenCV 2.2版本以上显示图片到 MFC 的 Picture Control 控件中
- 怎么让Android4.0以上机器的虚拟按键中显示menu键
- OpenCV 2.2版本以上显示图片到 MFC 的 Picture Control 控件中
- 使用ant让Android自动打包的build.xml,自动生成签名的apk文件(支持android4.0以上的版本) .
- Android WIFI源码思路(对文章进行一些修改,以适于Android4.0版本)