相关疑难解决方法(0)

startLeScan替换为当前的api

目标是读取蓝牙LE心率监测器的值.

使用谷歌的样本,我明白了

private void scanLeDevice(final boolean enable) {
    if (enable) {
        // Stops scanning after a pre-defined scan period.
        mHandler.postDelayed(new Runnable() {
            @Override
            public void run() {
                mScanning = false;
                mBluetoothAdapter.stopLeScan(mLeScanCallback);
            }
        }, SCAN_PERIOD);

        mScanning = true;
        mBluetoothAdapter.startLeScan(mLeScanCallback);
    } else {
        mScanning = false;
        mBluetoothAdapter.stopLeScan(mLeScanCallback);
    }
}
Run Code Online (Sandbox Code Playgroud)

导致mBluetoothAdapter.stopLeScan显示为已弃用.但是Startscan不是方法mBluetoothAdapter.

如何更改它以使其与当前API一起使用?

android bluetooth bluetooth-lowenergy

26
推荐指数
5
解决办法
3万
查看次数

Android蓝牙低功耗代码兼容API> = 21 AND API <21

我正在开发一个必须与BLE设备连接的应用程序,在我的代码中,我想使用从API 21(Android 5)实现的新的Scan和ScanCallback for BLE,但我必须保持与Android 4.3及更高版本的兼容性.

所以我用这种方式编写了代码:

        if (Build.VERSION.SDK_INT >= 21) {
            mLEScanner.startScan(filters, settings, mScanCallback);
        } else {
            btAdapter.startLeScan(leScanCallback);
        }
Run Code Online (Sandbox Code Playgroud)

我已经定义了2个回调,一个用于API 21及更高版本,另一个用于API 18到20:

    //API 21
private ScanCallback mScanCallback = new ScanCallback() {
        @Override
        public void onScanResult(int callbackType, ScanResult result) {
              BluetoothDevice btDevice = result.getDevice();
              connectToDevice(btDevice);
         }
         public void connectToDevice(BluetoothDevice device) {
              if (mGatt == null) {
                   mGatt = device.connectGatt(context, false, btleGattCallback);
                   if (Build.VERSION.SDK_INT < 21) {
                        btAdapter.stopLeScan(leScanCallback);
                   } else {
                        mLEScanner.stopScan(mScanCallback);
                   }
               }
         }
    };


//API 18 to 20
        private …
Run Code Online (Sandbox Code Playgroud)

android bluetooth bluetooth-lowenergy android-bluetooth

5
推荐指数
2
解决办法
7542
查看次数