BleService.ScanBack mScanBack = new BleService.ScanBack() { @Override public TriStateToggleButton.ToggleStatus getScanFilterStatus() { return btn_switch_filter.getToggleStatus(); Log.d(TAG, "getScanFilterStatus: " + mScanBack.getScanFilterStatus()); }改错
时间: 2024-03-16 16:44:18 浏览: 25
在这段代码中,你在`getScanFilterStatus()`方法的返回语句之后添加了`Log.d()`方法,但是这个方法永远不会被调用,因为`return`语句会立即结束方法的执行并返回一个值。因此,`Log.d()`方法永远不会被执行。
要打印出`getScanFilterStatus()`方法的返回值,你可以将`btn_switch_filter.getToggleStatus()`方法的返回值存储在一个变量中,然后在`Log.d()`方法中使用这个变量。例如:
```java
@Override
public TriStateToggleButton.ToggleStatus getScanFilterStatus() {
TriStateToggleButton.ToggleStatus toggleStatus = btn_switch_filter.getToggleStatus();
Log.d(TAG, "getScanFilterStatus: " + toggleStatus);
return toggleStatus;
}
```
这样就可以先打印出返回值,再返回该值,避免了代码逻辑错误。
相关问题
@Override public TriStateToggleButton.ToggleStatus getScanFilterStatus() { return btn_switch_filter.getToggleStatus(); Log.d(TAG, "getScanFilterStatus: " + mScanBack.getScanFilterStatus()); }改错
在这段代码中,`Log.d()`方法永远不会被执行,因为它在`return`语句之后。因为`return`语句会立即结束方法的执行并返回一个值,所以`Log.d()`方法永远不会被执行。
要打印出`getScanFilterStatus()`方法的返回值,你可以将`btn_switch_filter.getToggleStatus()`方法的返回值存储在一个变量中,然后在`Log.d()`方法中使用这个变量。例如:
```java
@Override
public TriStateToggleButton.ToggleStatus getScanFilterStatus() {
TriStateToggleButton.ToggleStatus toggleStatus = btn_switch_filter.getToggleStatus();
Log.d(TAG, "getScanFilterStatus: " + toggleStatus);
return toggleStatus;
}
```
这样就可以先打印出返回值,再返回该值,避免了代码逻辑错误。
public BleService(Context context, GattCallback.Refresh mGattBack, ScanBack mScanBack) { deviceList = new ArrayList<>(); this.context = context; this.mScanBack = mScanBack; // 重载一个OperationCv函数 GattCallback.Refresh mGattBack2 = new GattCallback.Refresh() { @Override public void OnClick_Connected(BluetoothDevice device) { mGattBack.OnClick_Connected(device); } @Override public void OnClick_Disconnect(BluetoothDevice device) { mGattBack.OnClick_Disconnect(device); } @Override public void OnClick_Rssi(BluetoothDevice device, int value) { mGattBack.OnClick_Rssi(device, value); } @Override public void OnClick_Refresh(BluetoothDevice device, byte[] value) { mGattBack.OnClick_Refresh(device, value); } @Override public void Operation(boolean isRead, boolean isWrite, boolean isConfig) { mGattBack.Operation(isRead, isWrite, isConfig); } // 主要为了覆盖这个方法,拿到特征值 @Override public void OperationCv(BluetoothGattCharacteristic cvReadT, BluetoothGattCharacteristic cvWriteT, BluetoothGattCharacteristic cvConfigT) { cvRead = cvReadT; cvWrite = cvWriteT; cvConfig = cvConfigT; if (cvRead != null) { // 读取数据 getData(); } // 给前端只通知各状态 Operation(cvRead != null, cvWrite != null, cvConfig != null); } };
这段代码是`BleService`类的构造函数,其中`context`是上下文对象,`mGattBack`和`mScanBack`是`GattCallback.Refresh`和`ScanBack`类型的回调函数。在构造函数中,初始化了一个设备列表`deviceList`。然后通过重载一个`OperationCv`函数,将特征值`cvReadT`、`cvWriteT`和`cvConfigT`分别赋值给变量`cvRead`、`cvWrite`和`cvConfig`。如果`cvRead`不为空,则调用`getData`函数读取数据。最后,通过`Operation`函数通知前端各状态。这段代码的主要作用是初始化`BleService`类,并且在回调函数中处理蓝牙设备的特征值,从而实现与蓝牙设备的数据交互。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)