BLE设备服务在uiAvailableServices中显示为null

时间:2017-02-01 06:25:54

标签: java android bluetooth-lowenergy

我成功连接到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

1 个答案:

答案 0 :(得分:0)

事实证明我不需要这条线

uiAvailableServices(mBleWrapper.getGatt(), mBleWrapper.getDevice(), mBleWrapper.getCachedServices());

该行部分用于从服务中检索特征。