一. 什么是蓝牙(Bluetooth)?

1.1  BuleTooth是目前使用最广泛的无线通信协议

1.2  主要针对短距离设备通讯(10m)

1.3  常用于连接耳机,鼠标和移动通讯设备等.

二. 与蓝牙相关的API

2.1 BluetoothAdapter:

代表了本地的蓝牙适配器

2.2 BluetoothDevice

代表了一个远程的Bluetooth设备

三. 扫描已经配对的蓝牙设备(1)

注:必须部署在真实手机上,模拟器无法实现

首先需要在AndroidManifest.xml 声明蓝牙权限

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

配对蓝牙需要手动操作:

1. 打开设置--> 无线网络 --> 蓝牙 勾选开启

2. 打开蓝牙设置  扫描周围已经开启的蓝牙设备(可以与自己的笔记本电脑进行配对),点击进行配对

电脑上会弹出提示窗口: 添加设备

显示计算与设备之间的配对码,要求确认是否配对

手机上也会显示类似的提示.

四. 扫描已经配对的蓝牙设备(2)

4.1 获得BluetoothAdapter对象

4.2 判断当前移动设备中是否拥有蓝牙

4.3 判断当前移动设备中蓝牙是否已经打开

4.4 得到所有已经配对的蓝牙设备对象

import java.util.Iterator;
import java.util.Set;import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class MainActivity extends Activity {private Button button = null;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);button = (Button)findViewById(R.id.buttonId);button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {//获得BluetoothAdapter对象,该API是android 2.0开始支持的BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();//adapter不等于null,说明本机有蓝牙设备if(adapter != null){System.out.println("本机有蓝牙设备!");//如果蓝牙设备未开启if(!adapter.isEnabled()){Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);//请求开启蓝牙设备startActivity(intent);}//获得已配对的远程蓝牙设备的集合Set<BluetoothDevice> devices = adapter.getBondedDevices();if(devices.size()>0){for(Iterator<BluetoothDevice> it = devices.iterator();it.hasNext();){BluetoothDevice device = (BluetoothDevice)it.next();//打印出远程蓝牙设备的物理地址System.out.println(device.getAddress());}}else{System.out.println("还没有已配对的远程蓝牙设备!");}}else{System.out.println("本机没有蓝牙设备!");}}});}
}

  

转载于:https://www.cnblogs.com/lhj588/p/3610445.html

Android开发之蓝牙--扫描已经配对的蓝牙设备相关推荐

  1. Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 什么是蓝牙(Bluetooth)? 1.1  BuleTooth是目前使用最广泛的无线通信协议 1.2  主要针对短距离设备通讯(10m) ...

  2. android 开发之蓝牙开发

    最近项目开发中蓝牙打印机需要用到蓝牙,所以在这里对蓝牙知识进行一个梳理和总结. 在使用蓝牙时有几个需要注意在这里新提出来 : 1: 权限 :前面两个蓝牙权限大家都会记住,如果你出现下面这个异常: 安卓 ...

  3. android spp 服务端,Android开发之蓝牙(一)——基于SPP协议蓝牙模块通信,androidspp...

    Android开发之蓝牙(一)--基于SPP协议蓝牙模块通信,androidspp 使用设备 基本概念 基本流程 本文意在介绍蓝牙开发的主要流程,学习使用蓝牙开发一个星期了,写写一个星期以来遇到的一些 ...

  4. 泰凌微ble mesh蓝牙模组天猫精灵学习之旅④如何在Android开发低功耗蓝牙ble控制 TB-02 模块,代码工程全部开源!(附带Demo)

    本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小白也痴迷,如 ...

  5. Android开发之——蓝牙-协议

    一 概述 传统蓝牙和低功耗蓝牙 蓝牙进行通信的四大必需任务 关键俗语和概念 Android 应用可通过 Bluetooth API 执行的操作 二 传统蓝牙和低功耗蓝牙 2.1 经典蓝牙模块(BT) ...

  6. Android开发之蓝牙(Bluetooth)---源码目录

    一 Bluetooth 的设置应用 packages\apps\Settings\src\com\Android\settings\bluetooth\* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等 ...

  7. android设备连接蓝牙扫描枪获取数据

    第一步,开启连接 首先要开启蓝牙并且找到蓝牙扫描枪连接,在自己的应用中添加权限 <uses-permission android:name="android.permission.BL ...

  8. android开发之蓝牙主动配对连接手机

    上一篇介绍了手机配对连接的三种方式,这篇以完整的一个代码实例介绍如何搜索周围的蓝牙设备,以及主动配对,连接. 主要注释在代码中都有. package jason.com; import java.io ...

  9. Android 9.0 蓝牙扫描流程

    微信扫码,给个关注吧 昨天梳理了蓝牙的开启流程,今天梳理一遍扫描流程: 1.UI /packages/apps/Settings/src/com/android/settings/bluetooth/ ...

最新文章

  1. poj1741(树的点分治)
  2. Spring Actuator源码分析(转)
  3. CTFshow 信息收集 web19
  4. 三国志战略版服务器维护延时,三国志战略版服务器爆满是多少人 爆满进不去怎么办...
  5. html ip输入框效果,html5 input文本框输入动画特效
  6. 晶体(crystal、无源晶振)两端电容取值计算
  7. python前端调用后端模型_【Python】【Flask】前端调用后端方法
  8. 在Flash中接收来自页面(.NET)的值的方法.
  9. C#基础8:类的继承
  10. php网页表格样式,HTML的表格样式
  11. 随机数相关函数rand与srand 以及drand48()与srand48
  12. tplink怎么进去_用手机或电脑进入TP-Link路由器设置界面的方法 怎么进入TP-Link路由器设置界面?...
  13. 【资料】wod旗帜,纹章
  14. 社交帝国的至暗时刻,Facebook“非死不可”?
  15. android 检测软键盘,Android:检测软键盘打开
  16. 输入一个字符串,判断其是否为回文串。
  17. Spring为什么这么火 之 Spring蕴含的设计思想
  18. OpenGL集锦(1)-安装与概述
  19. mysql如何设置密码
  20. 挤爆牙膏的ARM面临众叛亲离局面,不给华为用,而高通有意抛弃

热门文章

  1. docker创建rabbitmq容器命令
  2. zuul默认的路由规则及禁用路由规则
  3. Hystrix默认超时时间
  4. 大型高并发系统的系统设计要点
  5. RabbitMQ消息confirm确认机制
  6. 由于更换了java版本,Eclipse启动时报错:JRE or JDK must be available in order to run Eclipse
  7. 沈抚新区机器人产业园怎么_“智慧物流智能AGV技术交流峰会”在长春中日智能制造产业园成功举办...
  8. scp有证书的传输,压缩,解压
  9. xml约束和实际场景使用
  10. C++ warning:’xxx‘ has no out-of-line virtual method definitions...