Android BLE蓝牙使用 一

AndroidBle蓝牙开发

一 是否支持BLE蓝牙
 private boolean isSupportBluetooth(boolean istoast) {
        if (!this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
            if (istoast) {
                Toast.makeText(this, "你的设备不支持蓝牙", Toast.LENGTH_SHORT).show();
            }
            return false;
            // ((MainActivity) context).finish();

        }
        final BluetoothManager bluetoothManager =
                (BluetoothManager) this.getSystemService(Context.BLUETOOTH_SERVICE);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
            mBluetoothAdapter = bluetoothManager.getAdapter();
        }
        // Checks if Bluetooth is supported on the device.
        if (mBluetoothAdapter == null) {
            if (istoast) {
                Toast.makeText(this, "你的设备不支持Ble蓝牙", Toast.LENGTH_SHORT).show();
            }
            return false;
        }

        return true;
        }
二 如果支持我们就注册广播接收器来接收我们需要的蓝牙数据,然后具体的蓝牙操作封装在MyBluetoothLeService里面 绑定服务 。最后 如果判断蓝牙是否开启 如果开启我们就进行蓝牙的扫描 ,扫描前 我们需要申请权限 这边我们用的是 EasyPermissions框架来请求权限 最后我们就开启扫描
  /**
     * 初始化蓝牙设备包括我们的打开蓝牙等操作
     */
    private void initBluetooth() {
        supportBluetooth = isSupportBluetooth(true);
        if (supportBluetooth) {
            //注册广播接收器
            registerReceiver(mGattUpdateReceiver, makeGattUpdateIntentFilter());
            Intent gattServiceIntent = new Intent(this, MyBluetoothLeService.class);
            bindService(gattServiceIntent, mServiceConnection, BIND_AUTO_CREATE);
            if (mBluetoothAdapter.isEnabled()) {
                if (EasyPermissions.hasPermissions(this, bluePermission)) {
                    startBluetoothSearch();
                } else {
                    EasyPermissions.requestPermissions(this, "", Constant.REQUESTBLUETOOTHKEY, bluePermission);
                }
            } else {
                initRequestOpenBluetooth();
            }
        }
    }

 /**
     * 请求打开蓝牙设备
     */
    private void initRequestOpenBluetooth() {
        Intent mIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        startActivityForResult(mIntent, Constant.REQUESTTOOPENBLUE);
     // 用enable()方法来开启,无需询问用户(无声息的开启蓝牙设备),这时就需要用到android.permission.BLUETOOTH_ADMIN权限。
     // mBluetoothAdapter.enable();
    }
  /**
     * 开启蓝牙扫描  蓝牙烧扫描需要停止这边通过延时来关闭我们的蓝牙扫描
     */
    private void startBluetoothSearch() {
        mBluetoothAdapter.startLeScan(this); // 下面扫描特定service的蓝牙设备
        handler.sendEmptyMessageDelayed(0, delayMillis);//用来关闭我们的蓝牙扫描
         //后面优化用的6以后就推荐用下面的方法搜索
       /* if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mBluetoothAdapter.getBluetoothLeScanner().startScan(new ScanCallback() {
                @Override
                public void onScanResult(int callbackType, ScanResult result) {
                    super.onScanResult(callbackType, result);
                }

                @Override
                public void onBatchScanResults(List<ScanResult> results) {
                    super.onBatchScanResults(results);
                }

                @Override
                public void onScanFailed(int errorCode) {
                    super.onScanFailed(errorCode);
                }
            });
        }*/
        }
今天先分享BLE蓝牙是否支持和蓝牙是否开启以及蓝牙的扫描 这边 我们蓝牙的扫描 用的之前版本的在现在推荐使用上面注释掉的方法。 别忘记权限的申请和声明 BLE蓝牙需要定位权限 。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android BLE 蓝牙是指 Android 平台上的低功耗蓝牙功能,可以在很小的能量消耗下进行短距离数据通信。BLE 蓝牙被广泛应用于智能家居、穿戴设备、健康设备、智能手环等领域。 BLE 蓝牙主要分为两种角色——中央设备和外围设备。中央设备扫描周围的外围设备,并建立连接,然后从外围设备接收数据或向其发送数据。外围设备等待中央设备的连接请求,并在连接建立后向中央设备发送数据。BLE 蓝牙连接包括广告、扫描和连接三个阶段。 在连接过程中,BLE 蓝牙主要使用 GATT(通用属性配置文件)协议进行数据传输。GATT 是一个规则集,定义了通信所使用的所有服务和特征(属性)。属性是几乎所有 GATT 的构建块,它定义了服务和信息在设备之间交换的方式。 通过在 Android 平台上使用 BLE 蓝牙,我们还可以开发许多有用的应用程序。例如,我们可以使用 BLE 蓝牙实现室内定位、人员追踪和信标扫描等操作。我们还可以开发一些可穿戴设备,例如智能手环和智能手表,用于监测身体健康状况,如心率、血压等数据。 总之,BLE 蓝牙是非常有用和重要的技术,通过它我们可以轻松地连接和通信数据。Android BLE 提供了强大的开发工具包,可以用于开发各种有用的应用程序和服务。如果您是一名开发人员或热爱科技的用户,那么学习 BLE 蓝牙将会是您的不二之选!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值