Android扫描蓝牙设备是个异步的过程,核心的步骤为:调用bluetoothAdapter的startDiscovery()进行设备扫描,扫描的结果通过广播接收处理!具体如下:

1.申请相关权限

 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>

2.注册广播

 private void registerBroadcast() {
// Register for broadcasts when a device is discovered
IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
mContext.registerReceiver(mReceiver, filter); // Register for broadcasts when discovery has finished
filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
mContext.registerReceiver(mReceiver, filter);
}

3.扫描设备

 private void doDiscovery() {
// If we're already discovering, stop it
if (mBluetoothAdapter.isDiscovering()) {
mBluetoothAdapter.cancelDiscovery();
}
// Request discover from BluetoothAdapter
mBluetoothAdapter.startDiscovery();
}

4.广播中处理扫描到的设备

 private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction(); if (BluetoothDevice.ACTION_FOUND.equals(action)) {
// TODO discovery finds a device } else if (BluetoothAdapter.ACTION_DISCOVERY_FINISHED
.equals(action)) {
// TODO discovery is finished
}
}
};

最新文章

  1. iOS陀螺仪 参数意义
  2. 使用PhpDocumentor生成文档
  3. 假如现在有一堆长度大于3小于9的电话号码,用座机呼叫,如果出现这样的号码【123和12345】那么12345将永远不会被拨出,因为拨到123的时候电话已经呼出了,试写一个函数输出所有不能被呼出的电话号码(java实现)
  4. VS2013模块对于SAFESEH映像是不安全的解决方法
  5. js 中文乱码
  6. MFC学习 多线程
  7. BAT命令介绍【转自Internet】
  8. MySQL导入txt文件
  9. JAVA与C#关于JSON序列化的比较
  10. 我的Android进阶之旅------&gt;Android拍照小例子
  11. mvc 跳转到另一个页面 Controller带参数
  12. C++学习之路—const用法总结
  13. 关于Delphi中的字符串的浅析(瓢虫大作,里面有内存错误的举例)
  14. SVN merge
  15. GIS前端将选中的图形输出为Shapfile文件
  16. 文本分类学习 (七)支持向量机SVM 的前奏 结构风险最小化和VC维度理论
  17. 【代码笔记】Web-CSS-CSS Border(边框)
  18. 如何在源码里修改openwrt root密码
  19. DateFormat and SimpleDateFormat
  20. [转] Lodash

热门文章

  1. XML操作:2.LINQ TO XML(http://www.cnblogs.com/AlexLiu/archive/2008/10/27/linq.html)
  2. iOS 推送证书
  3. zendstudio 10下载汉化
  4. 教你50招提升ASP.NET性能(十四):使用startMode属性来减少ASP.NET站点加载时间
  5. classloader加载过程
  6. Node.js简单介绍
  7. cdoj 1255 斓少摘苹果 贪心
  8. delphi queryCommandState
  9. 基于ActiveMQ的统一日志服务
  10. 百度API_Demo