APP连接BLE4.0具体步骤

借助BLE4.0来做手机APP与硬件设备的通信,与经典蓝牙的步骤是不一样的。下面详细介绍如何在编写一个与BLE设备通信的app。

APP对BLE的操作主要可分为四步:准备、搜索、连接、交互

 

第一步:准备(请求权限和打开蓝牙)

这一步可分为三小步:声明权限,判断设备是否支持BLE,打开蓝牙

①声明权限

在AndroidManifest.xml文件下添加一下代码:

    <!-- 获取蓝牙相关权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />

    <!-- 获取模糊定位权限,Android6.0以后使用蓝牙所需 -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"
        android:protectionLevel="dangerous"/>

需要注意的是,我们不仅需要获取有关蓝牙的两个权限,还要请求一个模糊定位权限,这是Android6.0以上BLE搜索必需的权限。另外,由于定位权限属于危险权限,不但需要在Manifest.xml文件中添加,还要在代码中进行申请才可以,后面会提到如何申请定位权限并处理用户反馈结果。

判断设备是否支持BLE

        /* 判断本机设备是否支持BLE */
        if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
            Toast.makeText(this, R.string.not_support, Toast.LENGTH_SHORT).show();
            finish();  // 不支持就直接退出本页面
        }

        mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
        if (mBluetoothAdapter == null) {
            Toast.makeText(this, R.string.not_support, Toast.LENGTH_SHORT).show();
            finish();  //不支持就直接退出本页面
        }

其中,mBluetoothAdapter是BluetoothAdapter的实例,有两种实例化方式,一种是上述代码中的

mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();

另一种是通过BluetoothManager来得到

private BluetoothManager bluetoothManager;
bluetoothManager = (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();

③打开蓝牙

打开蓝牙我们一般采用用户交互式的打开方式。

        /* 以询问的方式,打开蓝牙 */
        if (!mBluetoothAdapter.isEnabled()) {
            Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
            startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
        }

这里使用的是startActivityForResult来向用户询问是否打开蓝牙,并定义了一个final的常数量 REQUEST_ENABLE_BT作为请求标志位,即requestcode ,这个标志位是用来在onActivityResult方法中读取反馈时判断时什么请求,在下面会用到。

private final int REQUEST_ENABLE_BT = 1;

我们重写onActivityResult方法来获得用户的反馈

     /**
     * 系统自动回调函数,处理其他activity通信的返回结果
     * @param requestCode:接收到的请求
     * @param resultCode:用户做出的应答
     * @param data:
     */
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        // 接收到了打开蓝牙的请求,但是用户拒绝打开蓝牙
        if (requestCode == RE
  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
菜鸟哥玩蓝牙BLE4.0系列,我想首先说明一下BLE4.0是一种低功耗的蓝牙技术,广泛应用于物联网、智能家居等领域。菜鸟哥选择玩BLE4.0系列可能有如下原因。 首先,BLE4.0具有低功耗特性。相比于传统蓝牙技术,BLE4.0在连接传输过程中的电量消耗更低,这意味着设备可以更长时间地使用电池,延长使用寿命。对于菜鸟哥来说,这意味着可以更长时间地玩耍和开发蓝牙设备,更好地学习和了解这项技术。 其次,BLE4.0具有广泛的应用领域。如今,物联网技术发展迅猛,智能家居、健康监测、智能穿戴设备等应用场景普遍采用BLE4.0技术。因此,通过玩蓝牙BLE4.0系列,菜鸟哥可以了解和学习到这些领域的应用特点和开发方法,为将来的工作和研究奠定坚实基础。 此外,BLE4.0具有较高的可靠性和稳定性。该技术在传输过程中采用了自适应频率跳跃和数据包检测等机制,能够自动调整工作频率和纠错,提高了数据传输的可靠性和稳定性。对于菜鸟哥来说,这意味着他在学习和开发过程中可以更好地理解和应用蓝牙BLE4.0的稳定性优势,提升自己的技术水平。 综上所述,菜鸟哥选择玩蓝牙BLE4.0系列可能是因为它具有低功耗、广泛的应用领域和较高的可靠性。通过深入学习和实践,他可以更好地掌握和应用这项蓝牙技术,为未来的工作和学习打下坚实的基础。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值