经典蓝牙使用

源码地址 https://gitee.com/xzw421771880/bluetooth

# Bluetooth

#### 介绍

安卓经典蓝牙

#### 软件架构

java语言

Android Studio 4.1.2

先了解一下BluetoothAdapter

1.  该类仅继承了Object类;

2. BluetoothAdapter代表了移动设备的本地的蓝牙适配器, 通过该蓝牙适配器可以对蓝牙进行基本操作, 例如 : 启动设备发现(startDiscovery), 获取已配对设备(getBoundedDevices), 通过mac蓝牙地址获取蓝牙设备(getRemoteDevice), 从其它设备创建一个监听连接(listenUsingRfcommWithServiceRecord);

#### 使用说明

1.BluetoothAdapter.getDefaultAdapter()该静态方法可以获取该适配器对象.

2.  权限(可以和1放在一起)

main中添加

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

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

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

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

//开启系统定位

if (Build.VERSION.SDK_INT >= 23&& !isLocationOpen()) {

    Intent enableLocate = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);

    startActivityForResult(enableLocate,1);

}else {

}

// 申请打开蓝牙

if (!mBluetoothAdapter.isEnabled()) {

    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);

    startActivityForResult(enableBtIntent, 1);

    return;

}

//开启应用位置权限

ActivityCompat.requestPermissions(this,

        new String[]{

                Manifest.permission.ACCESS_COARSE_LOCATION,Manifest.permission.WRITE_CONTACTS, Manifest.permission.ACCESS_FINE_LOCATION},

        0);

3.扫描 参考源码中public void startBluetoothDevicesDiscovery()方法

4.连接 参考源码中 public void getConnectedBlutooth(String address)方法

5.下发数据 public void writeData()

#### 参与贡献

1.  Fork 本仓库

2.  新建 Feat_xxx 分支

3.  提交代码

4.  新建 Pull Request

#### 特技

1.  研究过蓝牙的同学应该知道蓝牙下发速度是有瓶颈的

源码中使用ZLibUtils来实现数据压缩能够一定范围的实现数据量介绍,从而增加下发的速度

上一篇:Android-存储空间的最佳实践,为什么阿里的程序员成长如此之快


下一篇:用自己的APP打开微信和支付宝付款码和扫一扫界面