版权声明:本文为博主原创文章,未经博主允许不得转载。

一. 什么是蓝牙(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 得到所有已经配对的蓝牙设备对象

实现代码如下:

MainActivity:

[java] view plaincopy
  1. import java.util.Iterator;
  2. import java.util.Set;
  3. import android.app.Activity;
  4. import android.bluetooth.BluetoothAdapter;
  5. import android.bluetooth.BluetoothDevice;
  6. import android.content.Intent;
  7. import android.os.Bundle;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.Button;
  11. public class MainActivity extends Activity {
  12. private Button button = null;
  13. /** Called when the activity is first created. */
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. button = (Button)findViewById(R.id.buttonId);
  19. button.setOnClickListener(new OnClickListener(){
  20. @Override
  21. public void onClick(View v) {
  22. //获得BluetoothAdapter对象,该API是android 2.0开始支持的
  23. BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
  24. //adapter不等于null,说明本机有蓝牙设备
  25. if(adapter != null){
  26. System.out.println("本机有蓝牙设备!");
  27. //如果蓝牙设备未开启
  28. if(!adapter.isEnabled()){
  29. Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
  30. //请求开启蓝牙设备
  31. startActivity(intent);
  32. }
  33. //获得已配对的远程蓝牙设备的集合
  34. Set<BluetoothDevice> devices = adapter.getBondedDevices();
  35. if(devices.size()>0){
  36. for(Iterator<BluetoothDevice> it = devices.iterator();it.hasNext();){
  37. BluetoothDevice device = (BluetoothDevice)it.next();
  38. //打印出远程蓝牙设备的物理地址
  39. System.out.println(device.getAddress());
  40. }
  41. }else{
  42. System.out.println("还没有已配对的远程蓝牙设备!");
  43. }
  44. }else{
  45. System.out.println("本机没有蓝牙设备!");
  46. }
  47. }
  48. });
  49. }
  50. }

转载于:https://www.cnblogs.com/Free-Thinker/p/6798529.html

Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备相关推荐

  1. Android开发之蓝牙--扫描已经配对的蓝牙设备

    一. 什么是蓝牙(Bluetooth)? 1.1  BuleTooth是目前使用最广泛的无线通信协议 1.2  主要针对短距离设备通讯(10m) 1.3  常用于连接耳机,鼠标和移动通讯设备等. 二. ...

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

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

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

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

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

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

  5. android 开发之蓝牙开发

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

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

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

  7. Android开发_蓝牙基础

    蓝牙开发需要的权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <u ...

  8. Android开发之蓝牙通信

    一.项目内容 使用蓝牙通信,实现通过蓝牙聊天功能 二.项目实现 1.添加蓝牙权限 <uses-permission android:name="android.permission.B ...

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

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

最新文章

  1. 我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程
  2. 小程序学习(1):微信开发者工具安装
  3. matlab怎么画二维热力图_Tableau画日历热力图
  4. TCP、UDP绑定同一端口通信的解释-转
  5. RS485绝对值编码器Arduino数据读取
  6. php 冗余代码检测,冗余代码检查工具Simian | 求索阁
  7. 个人网站建设专业定制,个人网站建设怎么做
  8. 会议日程安排问题python
  9. 纯ALOHA协议和时隙ALOHA协议简单总结
  10. 小米手机扩容教程_小米note手机扩容,16G升级64G
  11. lisp绘制法兰_lisp语言画键槽_用LISP语言自定义AutoCAD命令
  12. Vue 路由懒加载和动态加载
  13. Oracle 存储过程中,解决变量使用 in条件时,查询无效问题
  14. html 有序无序列表,无序列表、有序列表和定义列表
  15. 255%可用已接通电源_家用电器电源开关(按钮)的符号使用讲解
  16. 2021-06-03
  17. 计算机桌面是哪个文件夹,windows的桌面文件夹是哪个?
  18. C语言实现网络嗅探器
  19. 【Android UI】Canvas 画布 ⑨ ( Canvas 绘图坐标系平移实例 )
  20. 使用CST 软件如何选配最佳的计算机硬件配置?

热门文章

  1. oracle按位或运算符怎么用,Oracle按位运算符
  2. -bash: locate: command not found
  3. Git实现从本地添加项目到远程仓库
  4. 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
  5. (原創) Verilog入門書推薦2:數位系統實習 Quartus II (SOC) (Verilog)
  6. PostgreSQL数据库 OLTP高并发请求性能优化
  7. SAP BASIS 工作台请求和定制请求的区别
  8. 编码规范系列(一):Eclipse Code Templates设置
  9. 世界上速度最慢的10种动物,做什么都慢半拍
  10. 01 | 研发工程师想提升面试竞争力,该具备这三个技术认知