Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备
版权声明:本文为博主原创文章,未经博主允许不得转载。
一. 什么是蓝牙(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:
- 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. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- button = (Button)findViewById(R.id.buttonId);
- button.setOnClickListener(new OnClickListener(){
- @Override
- public 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/Free-Thinker/p/6798529.html
Android开发之蓝牙(Bluetooth)操作(一)--扫描已经配对的蓝牙设备相关推荐
- Android开发之蓝牙--扫描已经配对的蓝牙设备
一. 什么是蓝牙(Bluetooth)? 1.1 BuleTooth是目前使用最广泛的无线通信协议 1.2 主要针对短距离设备通讯(10m) 1.3 常用于连接耳机,鼠标和移动通讯设备等. 二. ...
- android spp 服务端,Android开发之蓝牙(一)——基于SPP协议蓝牙模块通信,androidspp...
Android开发之蓝牙(一)--基于SPP协议蓝牙模块通信,androidspp 使用设备 基本概念 基本流程 本文意在介绍蓝牙开发的主要流程,学习使用蓝牙开发一个星期了,写写一个星期以来遇到的一些 ...
- 泰凌微ble mesh蓝牙模组天猫精灵学习之旅④如何在Android开发低功耗蓝牙ble控制 TB-02 模块,代码工程全部开源!(附带Demo)
本<泰凌微ble mesh蓝牙模组天猫精灵学习之旅>系列博客学习由半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1.小白也痴迷,如 ...
- Android开发之蓝牙(Bluetooth)---源码目录
一 Bluetooth 的设置应用 packages\apps\Settings\src\com\Android\settings\bluetooth\* 蓝牙设置应用及设置参数,蓝牙状态,蓝牙设备等 ...
- android 开发之蓝牙开发
最近项目开发中蓝牙打印机需要用到蓝牙,所以在这里对蓝牙知识进行一个梳理和总结. 在使用蓝牙时有几个需要注意在这里新提出来 : 1: 权限 :前面两个蓝牙权限大家都会记住,如果你出现下面这个异常: 安卓 ...
- Android开发之——蓝牙-协议
一 概述 传统蓝牙和低功耗蓝牙 蓝牙进行通信的四大必需任务 关键俗语和概念 Android 应用可通过 Bluetooth API 执行的操作 二 传统蓝牙和低功耗蓝牙 2.1 经典蓝牙模块(BT) ...
- Android开发_蓝牙基础
蓝牙开发需要的权限 <uses-permissionandroid:name="android.permission.BLUETOOTH_ADMIN" /> <u ...
- Android开发之蓝牙通信
一.项目内容 使用蓝牙通信,实现通过蓝牙聊天功能 二.项目实现 1.添加蓝牙权限 <uses-permission android:name="android.permission.B ...
- android开发之蓝牙主动配对连接手机
上一篇介绍了手机配对连接的三种方式,这篇以完整的一个代码实例介绍如何搜索周围的蓝牙设备,以及主动配对,连接. 主要注释在代码中都有. package jason.com; import java.io ...
最新文章
- 我们用4行代码节省了100万 记录与阿里云PCDN相遇全过程
- 小程序学习(1):微信开发者工具安装
- matlab怎么画二维热力图_Tableau画日历热力图
- TCP、UDP绑定同一端口通信的解释-转
- RS485绝对值编码器Arduino数据读取
- php 冗余代码检测,冗余代码检查工具Simian | 求索阁
- 个人网站建设专业定制,个人网站建设怎么做
- 会议日程安排问题python
- 纯ALOHA协议和时隙ALOHA协议简单总结
- 小米手机扩容教程_小米note手机扩容,16G升级64G
- lisp绘制法兰_lisp语言画键槽_用LISP语言自定义AutoCAD命令
- Vue 路由懒加载和动态加载
- Oracle 存储过程中,解决变量使用 in条件时,查询无效问题
- html 有序无序列表,无序列表、有序列表和定义列表
- 255%可用已接通电源_家用电器电源开关(按钮)的符号使用讲解
- 2021-06-03
- 计算机桌面是哪个文件夹,windows的桌面文件夹是哪个?
- C语言实现网络嗅探器
- 【Android UI】Canvas 画布 ⑨ ( Canvas 绘图坐标系平移实例 )
- 使用CST 软件如何选配最佳的计算机硬件配置?
热门文章
- oracle按位或运算符怎么用,Oracle按位运算符
- -bash: locate: command not found
- Git实现从本地添加项目到远程仓库
- 敏捷宣言和背后的原则 (Agile Manifesto and the principles behind)
- (原創) Verilog入門書推薦2:數位系統實習 Quartus II (SOC) (Verilog)
- PostgreSQL数据库 OLTP高并发请求性能优化
- SAP BASIS 工作台请求和定制请求的区别
- 编码规范系列(一):Eclipse Code Templates设置
- 世界上速度最慢的10种动物,做什么都慢半拍
- 01 | 研发工程师想提升面试竞争力,该具备这三个技术认知