Я наткнулся на точно такую же проблему.
У меня есть Razr XT910, обновленный до Android ICS (4.0.4), и я использую дополнение Motorola Handset SDK «Motorola_ICS_R2
».
Сейчас я говорю об образце надстройки SDK «Motorola_BLE_profile_sample», который я использую в качестве шаблона профиля для связи с моим брелком комплекта разработчика TI CC2540, который запускает пример SimplePeripheral.
При создании служб своего профиля убедитесь, что вызов BluetoothGattService(...) содержит действительный UUID объявления первичной службы GATT, который реализует ваше устройство, к которому вы подключаетесь. Это решит вашу проблему с пустым ObjectPathArray.
Например, мой брелок реализует службу информации об устройстве с UUID 0x180A, вы можете найти эту информацию для брелока в руководстве пользователя BLE CC2540 Dev Kit (https://www.ti.com/lit/ug/swru270b/swru270b). .pdf) на странице 14 на рисунке 20. Вы видите тип 0x2800 дескрипторов 0x01, 0x0C, 0x0F, это все первичные сервисы. Типы атрибутов профиля GATT можно найти здесь. Теперь вы меняете шаблон своего профиля (Motorola_BLE_profile_sample) с
public static final ParcelUuid HRM = ParcelUuid
.fromString("0000180D-0000-1000-8000-00805f9b34fb");
to:
public static final ParcelUuid HRM = ParcelUuid
.fromString("0000180A-0000-1000-8000-00805f9b34fb");
После запуска приложения LogCat выглядит так:
11-09 03:17:39.674: I/BluetoothLe(17462): onStop()
11-09 03:17:40.478: I/BluetoothLe(17462): onStart()
11-09 03:17:40.478: I/BluetoothLe(17462): onResume()
11-09 03:17:40.978: D/BluetoothLeREceiver(17462): Bluetooth LE receiver intnet action: android.bluetooth.devicepicker.action.DEVICE_SELECTED
11-09 03:17:40.986: I/BluetoothLe(17462): enter startConnection and value of devicePicker is true
11-09 03:17:40.986: D/BluetoothLe(17462): Calling btDevice.getGattServices
11-09 03:17:40.994: V/BluetoothLe(17462): primary service was successful
11-09 03:17:40.994: D/BluetoothLe(17462): GATT action
11-09 03:17:41.002: D/BluetoothLe(17462): GATT Service data list len : 1
11-09 03:17:41.002: V/BluetoothLe(17462): getBluetoothGattService()
11-09 03:17:41.002: D/BluetoothLe(17462): ++++++ Creating BluetoothGattService with device = 90:D7:EB:B2:4D:1D uuid 0000180a-0000-1000-8000-00805f9b34fb objPath = /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010
11-09 03:17:41.002: D/BluetoothGattService(17462): Discovery State 0 to 0
11-09 03:17:41.002: D/BluetoothGattService(17462): Bond state of remote device : 90:D7:EB:B2:4D:1D is 12
11-09 03:17:41.002: D/BluetoothGattService(17462): doDiscovery /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010
11-09 03:17:41.002: D/BluetoothGattService(17462): Discovery State 0 to 2
11-09 03:17:41.002: D/BluetoothLe(17462): getBluetoothGattService(): Adding gatt service to map for : 0000180a-0000-1000-8000-00805f9b34fbsize :1
11-09 03:17:41.002: D/BluetoothGattService(17462): readCharacteristicValue for /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010
11-09 03:17:55.463: D/BluetoothGattService(17462): onCharacteristicsDiscovered: [Ljava.lang.String;@41412ea0
11-09 03:17:55.471: D/BluetoothGattService(17462): Discovered 9 characteristics for service /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010 ( null )
11-09 03:17:55.510: D/BluetoothGattService(17462): Discovery State 2 to 1
11-09 03:17:55.510: D/BluetoothLe(17462): onDiscoverCharacteristicsResult : path : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010 result : true
11-09 03:17:55.510: D/BluetoothLe(17462): gattService.getServiceUuid() ======= 0000180a-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a23-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a24-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a25-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a26-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a27-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a28-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a29-0000-1000-8000-00805f9b34fb
11-09 03:17:55.517: D/BluetoothGattService(17462): Characteristic UUID: 00002a2a-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a50-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothGattService(17462): value is : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0012,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0014,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0016,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0018,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001a,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001c,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001e,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0020,/org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0022,
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a23-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothLe(17462): Map with key UUID : 00002a23-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0012
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a24-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothLe(17462): Map with key UUID : 00002a24-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0014
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a25-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothLe(17462): Map with key UUID : 00002a25-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0016
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a26-0000-1000-8000-00805f9b34fb
11-09 03:17:55.525: D/BluetoothLe(17462): Map with key UUID : 00002a26-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0018
11-09 03:17:55.525: D/BluetoothGattService(17462): Characteristic UUID: 00002a27-0000-1000-8000-00805f9b34fb
11-09 03:17:55.533: D/BluetoothLe(17462): Map with key UUID : 00002a27-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001a
11-09 03:17:55.533: D/BluetoothGattService(17462): Characteristic UUID: 00002a28-0000-1000-8000-00805f9b34fb
11-09 03:17:55.533: D/BluetoothLe(17462): Map with key UUID : 00002a28-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001c
11-09 03:17:55.533: D/BluetoothGattService(17462): Characteristic UUID: 00002a29-0000-1000-8000-00805f9b34fb
11-09 03:17:55.533: D/BluetoothLe(17462): Map with key UUID : 00002a29-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic001e
11-09 03:17:55.533: D/BluetoothGattService(17462): Characteristic UUID: 00002a2a-0000-1000-8000-00805f9b34fb
11-09 03:17:55.533: D/BluetoothLe(17462): Map with key UUID : 00002a2a-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0020
11-09 03:17:55.533: D/BluetoothGattService(17462): Characteristic UUID: 00002a50-0000-1000-8000-00805f9b34fb
11-09 03:17:55.533: D/BluetoothLe(17462): Map with key UUID : 00002a50-0000-1000-8000-00805f9b34fb value : /org/bluez/358/hci0/dev_90_D7_EB_B2_4D_1D/service0010/characteristic0022
11-09 03:17:55.533: D/BluetoothLe(17462): Created map with size : 10
Это все :-)
09.11.2012