请问,不同的硬件BLE设备,它们的Service和Characteristic的UUID是不是都是一样的?
最近写app做练习,在连接BLE模块时,可以正常收发信息,但是连接了另一个BLE设备时,会短暂连接后马上崩溃。下面是AS的报错,
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.administrator.mi_home, PID: 5569
java.lang.RuntimeException: Error receiving broadcast Intent { act=com.example.bluetooth.le.ACTION_GATT_SERVICES_DISCOVERED flg=0x10 } in com.example.administrator.mi_home.DeviceFragment.OneDeviceFragment$1@c064ebc
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1228)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.util.UUID android.bluetooth.BluetoothGattCharacteristic.getUuid()' on a null object reference
at android.bluetooth.BluetoothGatt.setCharacteristicNotification(BluetoothGatt.java:1104)
at com.example.administrator.mi_home.Service.BleService.setCharacteristicNotification(BleService.java:175)
at com.example.administrator.mi_home.DeviceFragment.OneDeviceFragment$1.onReceive(OneDeviceFragment.java:141)
at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:1218)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
提示有个空指针异常,
mBluetoothGatt.setCharacteristicNotification(characteristic, enabled); // 关键代码