android spp协议,Android蓝牙开发SPP协议通信
最近项目中使用到蓝牙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协议通信相关推荐
- Android 蓝牙开发——PBAP协议(十)
SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...
- Android Studio 简要实现蓝牙(Bluetooth)通信(附加作业)
文章目录 一.项目实现功能 二.项目核心代码 1.简要实现设备蓝牙通信 2.模拟Client 和Server端实现简单的通信. 三.实验项目截图 四.源代码 一.项目实现功能 1.两台设备可以通过蓝牙 ...
- Android 蓝牙开发——Avrcp协议(十二)
SDK路径:frameworks/base/core/java/android/bluetooth/ 服务路径:packages/apps/Bluetooth/src/com/android/blue ...
- Android 蓝牙开发——Avrcp协议获取歌曲信息(十八)
通过前面的 Avrcp 协协议的学习,我们知道蓝牙音乐的控制是通过媒体播放器进行的.而媒体播放器的数据发生变化时会通过 MediaSeesion 通知客户端,本篇文章主要分析一下歌曲信息是如何传递的. ...
- iOS BLE蓝牙开发数据传输协议详解 常用算法(AES加密 HMAC_hash PRF)
前言 这段时间参与了一款与蓝牙外设交互的项目, 以前没有涉及过数据传输方面的开发, 踩了不少坑, 同时也学到了很多东西. 此时, 项目也即将进入尾声, 有时间把这些记录一二. 本人才疏学浅, 如有错误 ...
- Android无线蓝牙开发总结
一.蓝牙基础知识 蓝牙(Bluetooth)是一种短距离的无线通信技术标准.这个名子来源于10世纪丹麦国王Harald Blatand,英文名子是Harold Bluetooth. (一)蓝牙的四层协 ...
- Android接入热敏打印机,Android 关于佳博和汉印蓝牙热敏打印机开发
接上篇文章Android之BLE(低功耗)蓝牙开发,本篇文章针对上篇博文中提出的两款打印机的开发流程进行记录. 首先不管时佳博打印机还是汉印打印机,都是先对他们各自的lib进行导入,如图: 导入lib ...
- Android之蓝牙开发浅析
简述: 关于蓝牙的开发,是从sdk2.0版本开始支持的,模拟器不支持,必须使用真机进行测试 android中所有半球蓝牙开发的类都在android.bluetooth包下 权限: <uses-p ...
- 从零开始的nrf52832蓝牙开发(1)--蓝牙协议基础
想要进行蓝牙开发,第一步肯定要对蓝牙协议有所了解.除了要对蓝牙的一些专业术语有所熟悉,还应该对蓝牙协议每层功能有一定认知. 概略图: 物理层(PHY): 物理层规定了蓝牙频段:2400MHz~2483 ...
最新文章
- 解决firefox ubuntu无法打开页面的问题
- [ZJOI2018]历史
- springboot国际化i18n
- Python 中的 eavl() 函数
- 原理竟然是这!2021年字节跳动74道高级程序员面试
- Java+XML+MVC框架StrutsCX简介[转]
- filter与servlet对照
- VisualStudio2010 SP1 SP1 SDK SQLServer 2008 SP3 下载地址
- Linux环境_源码安装LibreOffice实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件
- 你第1个100万怎么赚的?
- 计算机英语微课,【计算机英语论文】大学计算机基础微课设计研究
- Word将英文数字全部修改为Times New Roman字体
- 《计算机网络 第7版》第9章 无线局域网的物理层和MAC层
- 经典算法之左边界二分查找法(俗称左边界二分搜索法)
- java.sql.SQLException: 无效的列类型: getLong not implemented for class oracle.jdbc.driver.T4CRowidAccessor
- spring boot的启动与配置
- JavaMail邮件发送不成功的那些坑人情况及分析说明(巨坑跳出专用姿势)
- 【Linux】冒险Apache
- linux配置ftp服务
- 校园社交类app“校园微生活”