zoukankan      html  css  js  c++  java
  • Android 蓝牙通信——AndroidBluetoothManager


    转载请说明出处。
    作者:kqw攻城狮
    出处:个人站 | CSDN


    To get a Git project into your build:

    Step 1. Add the JitPack repository to your build file

    Add it in your root build.gradle at the end of repositories:

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

    Step 2. Add the dependency

    dependencies {
            compile 'com.github.kongqw:AndroidBluetoothManager:1.0.0'
    }

    AndroidBluetoothManager

    效果图

    这里写图片描写叙述

    PNG

    GIF

    基础功能

    加入权限

    <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" />

    初始化

    mBluetoothManager = new BluetoothManager();

    打开蓝牙

    mBluetoothManager.openBluetooth();

    关闭蓝牙

    mBluetoothManager.closeBluetooth();

    加入蓝牙开关状态的监听

    mBluetoothManager.setOnBluetoothStateListener(this);
    /**
     * 正在关闭蓝牙的回调
     */
    @Override
    public void onBluetoothStateTurningOff() {
        // TODO
    }
    
    /**
     * 蓝牙关闭的回调
     */
    @Override
    public void onBluetoothStateOff() {
        // TODO
    }
    
    /**
     * 正在打开蓝牙的回调
     */
    @Override
    public void onBluetoothStateTurningOn() {
        // TODO
    }
    
    /**
     * 蓝牙打开的回调
     */
    @Override
    public void onBluetoothStateOn() {
        // TODO
    }

    移除蓝牙开关状态的监听

    mBluetoothManager.removeOnBluetoothStateListener();

    设置蓝牙可见

    startActivity(mBluetoothManager.getDurationIntent(0));

    获取蓝牙名称

    mBluetoothManager.getName()

    改动蓝牙名称

    mBluetoothManager.setName(newName);

    扫描附近的蓝牙设备

    mBluetoothManager.discovery();

    加入扫描蓝牙设备的监听

    mBluetoothManager.setOnDiscoveryDeviceListener(this);
    /**
     * 開始扫描附近蓝牙设备的回调
     */
    @Override
    public void onDiscoveryDeviceStarted() {
        // TODO
    }
    
    /**
     * 扫描到附近蓝牙设备的回调
     *
     * @param device 蓝牙设备
     */
    @Override
    public void onDiscoveryDeviceFound(BluetoothDevice device) {
        // TODO
    }
    
    /**
     * 扫描附近蓝牙设备完毕的回调
     */
    @Override
    public void onDiscoveryDeviceFinished() {
        // TODO
    }

    移除扫描蓝牙设备的监听

    mBluetoothManager.removeOnDiscoveryDeviceListener();

    服务端

    初始化

    mBluetoothService = new BluetoothService() {
    
        @Override
        protected UUID onSecureUuid() {
            // TODO 设置自己的UUID
            return UUID_SECURE;
        }
    
        @Override
        protected UUID onInsecureUuid() {
            // TODO 设置自己的UUID
            return UUID_INSECURE;
        }
    };

    等待client连接

    mBluetoothService.start();

    断开连接/释放资源

    mBluetoothService.stop();

    加入蓝牙连接的监听

    mBluetoothService.setOnServiceConnectListener(new OnServiceConnectListener() {
        @Override
        public void onConnectListening() {
            // TODO
        }
    
        @Override
        public void onConnectSuccess(BluetoothDevice device) {
            // TODO
        }
    
        @Override
        public void onConnectFail(Exception e) {
            // TODO
        }
    
        @Override
        public void onConnectLost(Exception e) {
            // TODO
        }
    });

    发送消息

    mBluetoothService.send(chatText);

    加入消息收发的监听

    mBluetoothClient.setOnMessageListener(this);
    /**
     * 蓝牙发送了消息
     *
     * @param message 发送的消息
     */
    @Override
    public void onSend(String message) {
        // TODO
    }
    
    /**
     * 蓝牙接收到消息
     *
     * @param message 接收的消息
     */
    @Override
    public void onRead(String message) {
        // TODO
    }

    client

    初始化

    mBluetoothClient = new BluetoothClient() {
        @Override
        protected UUID onSecureUuid() {
            // TODO 设置自己的UUID
            return UUID_SECURE;
        }
    
        @Override
        protected UUID onInsecureUuid() {
            // TODO 设置自己的UUID
            return UUID_INSECURE;
        }
    };

    蓝牙连接(安全)

    mBluetoothClient.connect(mBluetoothDevice, true);

    蓝牙连接(不安全)

    mBluetoothClient.connect(mBluetoothDevice, false);

    断开连接/释放资源

    mBluetoothClient.stop();

    加入蓝牙连接的监听

    mBluetoothClient.setOnClientConnectListener(new OnClientConnectListener() {
        @Override
        public void onConnecting() {
            // TODO
        }
    
        @Override
        public void onConnectSuccess(BluetoothDevice device) {
            // TODO
        }
    
        @Override
        public void onConnectFail(Exception e) {
            // TODO
        }
    
        @Override
        public void onConnectLost(Exception e) {
            // TODO
        }
    });

    发送消息

    mBluetoothClient.send(chatText);

    加入消息收发的监听

    mBluetoothClient.setOnMessageListener(this);
    /**
     * 蓝牙发送了消息
     *
     * @param message 发送的消息
     */
    @Override
    public void onSend(String message) {
        // TODO
    }
    
    /**
     * 蓝牙接收到消息
     *
     * @param message 接收的消息
     */
    @Override
    public void onRead(String message) {
        // TODO
    }
  • 相关阅读:
    Docker
    Orleans MultiClient 多个Silo复合客户端
    Docker
    C# 动态创建实例化泛型对象,实例化新对象 new()
    .net core UseHttpsRedirection() 正式环境无效
    .NET Core 版本不支持的问题
    Swift 编译时间优化
    test chemes
    Mac下开发常用目录
    文字高度问题
  • 原文地址:https://www.cnblogs.com/zhchoutai/p/8350179.html
Copyright © 2011-2022 走看看