新项目开始了,老板要求同事把之前写的测试蓝牙设备的测试demo集成到新项目中;在集成OK之后,我这边pull代码之后运行到Android7.0手机上之后发现功能效果并没有出来;问过同事之后,他说在Android5.1上面是OK的,让我自己想办法解决。。。
开始了各种测试解决,什么动态请求权限啊、查看自己写的另一个项目的蓝牙代码啊、问蓝牙设备厂商的客服人员啊。。。各种的测试修改,最后发现并没什么用。只好自己去网上查资料了,网上有人说了一下可能是定位权限的问题,赶紧去试一下,问题完美解决!!!查过资料之后才发现原来在Android6.0之后,系统对搜索蓝牙设备的权限进行了修改,在6.0之前是只需要
<!-- 管理蓝牙设备的权限 --> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> <!-- 使用蓝牙设备的权限 --> <uses-permission android:name="android.permission.BLUETOOTH" />这两个权限的。而在6.0之后,是需要加上定位权限的
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />好吧,之前的项目是加了的,所以没有问题。(对了,定位权限是需要动态请求的,不要忘记噢)只能怪自己之前没有记住这个知识点了,在此记录一下,希望自己以后不要再犯这种错误!和大家共勉!