• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    Java
  • Created over 4 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Android 蓝牙串口 SPP 工具类 + Demo

蓝牙工具类:BLESPPUtils.java 直达链接

调用示例:MainActivity.java 直达链接

配套讲解文章:快速上手 Android 蓝牙串口 SPP 开发 直达链接

使用方式:

  • 1 加入权限并确认处理好运行时权限,已经授予了定位权限(用于扫描蓝牙设备)

    <!--管理蓝牙需要-->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <!--搜索蓝牙需要,因为蓝牙可以被用来定位,所以需要定位权限-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
  • 2 实例化工具类,第一个参数是 context,可以为任意 context,不涉及 UI 操作;第二个参数是「蓝牙活动回调」

    // 初始化
    mBLESPPUtils = new BLESPPUtils(MainActivity.this, new BLESPPUtils.OnBluetoothAction() {
        /**
         * 当发现新设备
         *
         * @param device 设备
         */
        @Override
        public void onFoundDevice(BluetoothDevice device) {
            
        }
    
        /**
         * 当连接成功
         *
         * @param device
         */
        @Override
        public void onConnectSuccess(BluetoothDevice device) {
    
        }
    
        /**
         * 当连接失败
         *
         * @param msg 失败信息
         */
        @Override
        public void onConnectFailed(String msg) {
    
        }
    
        /**
         * 当接收到 byte 数组
         *
         * @param bytes 内容
         */
        @Override
        public void onReceiveBytes(byte[] bytes) {
    
        }
    
        /**
         * 当调用接口发送了 byte 数组
         *
         * @param bytes 内容
         */
        @Override
        public void onSendBytes(byte[] bytes) {
    
        }
    
        /**
         * 当结束搜索设备
         */
        @Override
        public void onFinishFoundDevice() {
    
        }
    });
  • 3 设置接收停止标志位字符串

    mBLESPPUtils.setStopString("\r\n");
  • 4 启用工具类

    mBLESPPUtils.onCreate();
  • 5 在适当的时候销毁工具类,譬如 Activity 的 onDestroy()

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mBLESPPUtils.onDestroy();
    }
  • 6 检查蓝牙开启情况

    // 用户没有开启蓝牙的话打开蓝牙
    if (!mBLESPPUtils.isBluetoothEnable()) mBLESPPUtils.enableBluetooth();
  • 7 搜索蓝牙设备,搜索结果在上面的回调里了

    mBLESPPUtils.startDiscovery();
  • 8 使用搜索到的 BluetoothDevice 连接设备

    mBLESPPUtils.connect(bluetoothDevice);
  • 9 使用之前保存的 MAC 地址连接

    mBLESPPUtils.connect("mac地址");
  • 10 发送 byte 数组到串口

    mBLESPPUtils.send("hello\r\n".getBytes());
  • 11 接收到串口发送的 byte 数组在上面第二步的onReceiveBytes(byte[] bytes)回调中

  • 12 启用工具类日志输出

    mBLESPPUtils.enableBluetooth();

More Repositories

1

app_process-shell-use

利用 app_process 实现免root调用shell
Java
442
star
2

how-to-check-sign

如何把签名校验做到极致
147
star
3

easyShopping

一个相对完善的第三方套壳淘宝客户端🎈2019/05/37:之前是因为初期代码写的太烂,几次试图重构但因为种种原因没有完成,现因为版权问题转为归档
Java
62
star
4

showLove

一个向女神表白的app
JavaScript
49
star
5

live2d_unity_sdk_chinese_document

🚧施工中🚧Live2D Cubism SDK for Unity 文档中文翻译
23
star
6

HackE4aChecks

老有人找我脱一些E4a程序的壳,究其原因就是要抓个接口,罢了罢了,随手写个xp一劳永逸,可去除E4a程序的部分VPN,Hook,Root,模拟器,双开检测
Java
15
star
7

beautiful_switch

Android 上一个漂亮的开关
Java
10
star
8

FrontBackgroundCheck

还在猜测各种分屏小窗能不能被网课考试程序检测?来用这个 APP 检测下吧😏
Kotlin
7
star
9

beautiful_seekbar

一个在 Android 平台上美观的跟手进度条
Java
5
star
10

BreatheEditText

Android EditText breathing blink effect / 仿照「纯纯写作」的呼吸光标
Kotlin
5
star
11

BouncingFloatingButton

🤸‍♂️一个带可拖拽的浮动控件的底栏,能玩一天
Kotlin
3
star
12

gtf35

热爱开源,喜欢写博客,点个 Follow 不迷路😏
2
star
13

gradle-guides-doc

Gradle 官方指南中文翻译
2
star
14

saf-text-demo

通过 SAF 保存,创建和读取纯文本文件
Java
1
star
15

GLLearn1

OpenGL SE android 学习
Kotlin
1
star
16

resume

简历,觉得我不错联系邮箱 [email protected]
1
star
17

apkhelper

Compose-jb 写的 APK 安装助手
Kotlin
1
star
18

SchoolComputerRoomControlCenter

校数据中心 Android 端监控面板
Java
1
star
19

retrace-plugin

ReTrace Tool, can easy de-obfuscate stack traces of obfuscated programs in idea
Kotlin
1
star