最近项目中使用到蓝牙SPP协议通信,然后在网上看了很多资料,进行学习使用,为了加深印象,做个简单的整理。

1、使用蓝牙权限< uses-permission android:name="android.permission.BLUETOOTH" />

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

2、蓝牙核心类BluetoothAdapter

代表本地的蓝牙适配器设备。BluetoothAdapter类让用户能执行基本的蓝牙任务。例如:初始化设备的搜索,查询可匹配的设备集,使用一个已知的MAC地址来初始化一个BluetoothDevice类,创建一个 BluetoothServerSocket类以监听其它设备对本机的连接请求等。

为了得到这个代表本地蓝牙适配器的 BluetoothAdapter类,调用getDefaultAdapter()这一静态方法。这是所有蓝牙动作使用的第一步。当拥有本地适配器以后,用户可以获得一系列的BluetoothDevice对象,这些对象代表所有拥有getBondedDevice()方法的已经匹配的设备;用 startDiscovery()方法来开始设备的搜寻;或者创建一个BluetoothServerSocket类,通过 listenUsingRfcommWithServiceRecord(String, UUID)方法来监听新来的连接请求。

打开系统的蓝牙设置面板

Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

startActivity(intent);

开启蓝牙

adapter.enable();

关闭蓝牙

adapter.disable();

设置对别的设备可见

Intent discoveryIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);

discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);//设置持续时间(最多300秒)

搜索蓝牙

adapter.startDiacovery(),当在代码中调用了该方法时,系统会发送广播ACTION_FOUND:找到设备,我们可以在代码中注册一个广播,用来接受系统发送的广播。

// 注册BroadcastReceiver

IntentFilter filter = new IntentFilter(BluetoothDevice.ACTION_FOUND);

registerReceiver(mReceiver, filter); // 不要忘了之后解除绑定

// 创建一个接收ACTION_FOUND广播的BroadcastReceiver

private final BroadcastReceiver mReceiver = new BroadcastReceiver() {

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

// 发现设备

if (BluetoothDevice.ACTION_FOUND.equals(action)) {

// 从Intent中获取设备对象

BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);

// 将设备名称和地址放入array adapter,以便在ListView中显示

mArrayAdapter.add(device.getName() + "\n" + device.getAddress());

}

}

};



android spp协议,Android蓝牙开发SPP协议通信相关推荐

  1. Android 蓝牙开发——PBAP协议(十)

    SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...

  2. Android Studio 简要实现蓝牙(Bluetooth)通信(附加作业)

    文章目录 一.项目实现功能 二.项目核心代码 1.简要实现设备蓝牙通信 2.模拟Client 和Server端实现简单的通信. 三.实验项目截图 四.源代码 一.项目实现功能 1.两台设备可以通过蓝牙 ...

  3. Android 蓝牙开发——Avrcp协议(十二)

    SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...

  4. Android 蓝牙开发——Avrcp协议获取歌曲信息(十八)

    通过前面的 Avrcp 协协议的学习,我们知道蓝牙音乐的控制是通过媒体播放器进行的.而媒体播放器的数据发生变化时会通过 MediaSeesion 通知客户端,本篇文章主要分析一下歌曲信息是如何传递的. ...

  5. iOS BLE蓝牙开发数据传输协议详解 常用算法(AES加密 HMAC_hash PRF)

    前言 这段时间参与了一款与蓝牙外设交互的项目, 以前没有涉及过数据传输方面的开发, 踩了不少坑, 同时也学到了很多东西. 此时, 项目也即将进入尾声, 有时间把这些记录一二. 本人才疏学浅, 如有错误 ...

  6. Android无线蓝牙开发总结

    一.蓝牙基础知识 蓝牙(Bluetooth)是一种短距离的无线通信技术标准.这个名子来源于10世纪丹麦国王Harald Blatand,英文名子是Harold Bluetooth. (一)蓝牙的四层协 ...

  7. Android接入热敏打印机,Android 关于佳博和汉印蓝牙热敏打印机开发

    接上篇文章Android之BLE(低功耗)蓝牙开发,本篇文章针对上篇博文中提出的两款打印机的开发流程进行记录. 首先不管时佳博打印机还是汉印打印机,都是先对他们各自的lib进行导入,如图: 导入lib ...

  8. Android之蓝牙开发浅析

    简述: 关于蓝牙的开发,是从sdk2.0版本开始支持的,模拟器不支持,必须使用真机进行测试 android中所有半球蓝牙开发的类都在android.bluetooth包下 权限: <uses-p ...

  9. 从零开始的nrf52832蓝牙开发(1)--蓝牙协议基础

    想要进行蓝牙开发,第一步肯定要对蓝牙协议有所了解.除了要对蓝牙的一些专业术语有所熟悉,还应该对蓝牙协议每层功能有一定认知. 概略图: 物理层(PHY): 物理层规定了蓝牙频段:2400MHz~2483 ...

最新文章

  1. 解决firefox ubuntu无法打开页面的问题
  2. [ZJOI2018]历史
  3. springboot国际化i18n
  4. Python 中的 eavl() 函数
  5. 原理竟然是这!2021年字节跳动74道高级程序员面试
  6. Java+XML+MVC框架StrutsCX简介[转]
  7. filter与servlet对照
  8. VisualStudio2010 SP1 SP1 SDK SQLServer 2008 SP3 下载地址
  9. Linux环境_源码安装LibreOffice实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件
  10. 你第1个100万怎么赚的?
  11. 计算机英语微课,【计算机英语论文】大学计算机基础微课设计研究
  12. Word将英文数字全部修改为Times New Roman字体
  13. 《计算机网络 第7版》第9章 无线局域网的物理层和MAC层
  14. 经典算法之左边界二分查找法(俗称左边界二分搜索法)
  15. java.sql.SQLException: 无效的列类型: getLong not implemented for class oracle.jdbc.driver.T4CRowidAccessor
  16. spring boot的启动与配置
  17. JavaMail邮件发送不成功的那些坑人情况及分析说明(巨坑跳出专用姿势)
  18. 【Linux】冒险Apache
  19. linux配置ftp服务
  20. 校园社交类app“校园微生活”

热门文章

  1. 设计模式的皇后-观察者模式
  2. Tomcat服务与搭建(一)
  3. Python迭代对象、迭代器、生成器
  4. 2分钟-实现开机nginx开机自启动脚本(shell篇)
  5. C/C++ Windows API——Tcp 客户端 服务器
  6. hive-jdbc/odbc的解读和看法
  7. 安全系列之一:如何利用IPSec保证远程桌面的安全性!(上)
  8. SQL Server2005 日期字段与字符串比较的怪异问题
  9. 回复博友:初学ERP的建议
  10. 微软 Azure App Service 漏洞 NotLegit已存在4年,客户源代码被暴露