经典蓝牙使用

源码地址 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来实现数据压缩能够一定范围的实现数据量介绍,从而增加下发的速度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值