我成功连接到BLE设备。我正在尝试获取它的所有服务并将它们添加到数组中。但是,当我在uiAvailableServices中循环遍历它时,它显示为null。
调用可用服务的代码
@Override
protected void onResume() {
super.onResume();
if(mBleWrapper == null) mBleWrapper = new BleWrapper(this, this);
if(!mBleWrapper.initialize()) {
finish();
}
// start automatically connecting to the device
mBleWrapper.connect(mDeviceAddress);
uiAvailableServices(mBleWrapper.getGatt(), mBleWrapper.getDevice(), mBleWrapper.getCachedServices());
}
可用服务功能:
//add each service to the services array
public void uiAvailableServices(final BluetoothGatt gatt,
final BluetoothDevice device,
final List<BluetoothGattService> services)
{
//services aren't showing up here
for (BluetoothGattService service : services)
{
String uuid = service.getUuid().toString().toLowerCase(Locale.getDefault());
Log.d(TAG, uuid);
}
}
错误:
java.lang.NullPointerException: Attempt to invoke interface method 'java.util.Iterator java.util.List.iterator()' on a null object reference
答案 0 :(得分:0)
事实证明我不需要这条线
uiAvailableServices(mBleWrapper.getGatt(), mBleWrapper.getDevice(), mBleWrapper.getCachedServices());
该行部分用于从服务中检索特征。