android 蓝牙BLE扫描和wifi扫描总结
2016-07-08 16:50
489 查看
做室内定位的程序员应该都知道,在android 5.0之后,google推出了蓝牙扫描新接口,我们在实测中发现出一些问题,现在给大家列出,以供参考:
1.android 4.3.1(Build.VERSION_CODES.JELLY_BEAN_MR2)增加的startLeScan(callback)方法,官方在5.0之后不建议使用,实测此方法,4.3至目前6.0版本还是很稳定的,毫秒级无限返回蓝牙数据,很稳定,就是很耗电;
2.android5.0(Build.VERSION_CODES.LOLLIPOP)谷歌建议使用BluetoothAdapter.getBluetoothLeScanner().startScan(mScanCallback),实测效果不尽人意,大哥总是带头让人测试api,好歹自己测测嘛,这个接口很不稳定,前几十秒扫描非常稳定,快速返回很多个BLE装置后(大概持续1-2分钟),然后蓝牙自动静默,回调方法无任何数据返回,我们几百台BLE设备实测。
①:另外实测中大部分市面上的android4.3系统之上的手机,小米低配系列和华为低配系列会出现扫描几分钟甚至几十秒之后,手机蓝牙底层崩溃,logcat报出底层蓝牙模块报错,只能重启才有效,不过最近MIUI6之后,发现例红米1s蓝牙扫描可以无限支持蓝牙扫描接口,说明是系统ROM的问题;
②:三星系列手机,note是最差的,接收到BLE蓝牙信号很不稳定,可能出现较远出的BLE装置信号突然很高的情况;S4,S5扫描正常。
③:魅族蓝牙是最差的,两款魅族手机,我不清楚型号了,应该是中配版的,实测扫描开启几秒后,logcat报出底层蓝牙崩溃,无法返回任何信息。
④:接口反馈最正常的肯定是Google android实验室榜样机Nexus系列,也仅限于1中老接口
android 6.0以上,蓝牙扫描和wifi扫描方法默认需要定位权限支持,还需要在定位权限中把扫描设置打开,实测如果这两项不开,返回扫描结果集不报错但数量为0。如下图:
最后建议大家:API有风险,修改需谨慎,哪怕是我Google大帝,也有偷懒的时候
1.android 4.3.1(Build.VERSION_CODES.JELLY_BEAN_MR2)增加的startLeScan(callback)方法,官方在5.0之后不建议使用,实测此方法,4.3至目前6.0版本还是很稳定的,毫秒级无限返回蓝牙数据,很稳定,就是很耗电;
2.android5.0(Build.VERSION_CODES.LOLLIPOP)谷歌建议使用BluetoothAdapter.getBluetoothLeScanner().startScan(mScanCallback),实测效果不尽人意,大哥总是带头让人测试api,好歹自己测测嘛,这个接口很不稳定,前几十秒扫描非常稳定,快速返回很多个BLE装置后(大概持续1-2分钟),然后蓝牙自动静默,回调方法无任何数据返回,我们几百台BLE设备实测。
①:另外实测中大部分市面上的android4.3系统之上的手机,小米低配系列和华为低配系列会出现扫描几分钟甚至几十秒之后,手机蓝牙底层崩溃,logcat报出底层蓝牙模块报错,只能重启才有效,不过最近MIUI6之后,发现例红米1s蓝牙扫描可以无限支持蓝牙扫描接口,说明是系统ROM的问题;
②:三星系列手机,note是最差的,接收到BLE蓝牙信号很不稳定,可能出现较远出的BLE装置信号突然很高的情况;S4,S5扫描正常。
③:魅族蓝牙是最差的,两款魅族手机,我不清楚型号了,应该是中配版的,实测扫描开启几秒后,logcat报出底层蓝牙崩溃,无法返回任何信息。
④:接口反馈最正常的肯定是Google android实验室榜样机Nexus系列,也仅限于1中老接口
android 6.0以上,蓝牙扫描和wifi扫描方法默认需要定位权限支持,还需要在定位权限中把扫描设置打开,实测如果这两项不开,返回扫描结果集不报错但数量为0。如下图:
最后建议大家:API有风险,修改需谨慎,哪怕是我Google大帝,也有偷懒的时候
相关文章推荐
- 【笔记】蓝牙BLE开发记录
- 关于Android4.0 BLE编程的一点总结(搜索篇)
- 关于蓝牙BLE开发中要做掉的东西——除了设备和客户端外的蓝牙匹配对话框,notification 蓝牙匹配的通知栏
- Android6.0以上系统搜索不到 蓝牙BLE 设备问题
- 蓝牙BLE相关知识
- Android自定义View——仿QQ等级天数进度
- android布局--fill_parent、wrap_content和match_parent的区别
- 关于android传感器中的一些名词
- 定制Android系统开发之二——系统服务
- 关于Android studio导入so库文件失败
- Android LayoutInflater详解
- Android 依赖注入 ButterKnife 基本使用
- Android Studio每次重启都恢复之前的状态
- Android 控件之TextView常见使用问题
- Android自定义控件:绘图基础Canvas、Paint类
- 使用Android SDK Manager更新时出现Download Interrupted:Connection reset错误解决办法
- Android开发——SQLite数据库框架Sugar的使用
- Android 复习笔记5 listView ArrayList
- Android中关于Intent filter和Intent的一些用法。
- universal-imageloader和glide清除磁盘缓存问题