Как получить состояния подключения для устройства Bluetooth с низким энергопотреблением в Android

Ниже приведен код, который Android использует для получения сводки о соединении (для отображения меток состояния соединения).

      private int getConnectionSummary() {
      ...........................
      ...........................
      for (LocalBluetoothProfile profile : cachedDevice.getProfiles()) {
            int connectionStatus = cachedDevice.getProfileConnectionState(profile);

            switch (connectionStatus) {
                case BluetoothProfile.STATE_CONNECTING:
                case BluetoothProfile.STATE_DISCONNECTING:
                    return Utils.getConnectionStateSummary(connectionStatus);

                case BluetoothProfile.STATE_CONNECTED:
                    profileConnected = true;
                    break;

                case BluetoothProfile.STATE_DISCONNECTED:
                    if (profile.isProfileReady()) {
                        if (profile instanceof A2dpProfile) {
                            a2dpNotConnected = true;
                        } else if (profile instanceof HeadsetProfile) {
                            headsetNotConnected = true;
                        }
                    }
                    break;
            }
        }

Как видно из приведенного выше кода, они получают статус подключения для классического устройства с помощью следующей строки кода:

int connectionStatus = cachedDevice.getProfileConnectionState(profile);

Система Android вызывает метод getConnectionSummary() независимо от того, пытается ли подключиться устройство Classic или Bluetooth с низким энергопотреблением; но в отличие от классического устройства, поскольку у нас нет метода, с помощью которого мы можем получить статус подключения для устройства Bluetooth с низким энергопотреблением, мы не можем правильно обновить статус подключения для устройства с низким энергопотреблением.

Полный исходный код для этого класса можно найти здесь

Буду признателен за любую оказанную помощь.


person user1400538    schedule 27.09.2012    source источник


Ответы (1)


Какой набор для разработки Bluetooth с низким энергопотреблением вы используете?

На данный момент Android не имеет собственного API для устройств Bluetooth с низким энергопотреблением. возможно, вам придется использовать сторонние API, такие как BLE From Broadcomm, TI или CSR.

http://code.google.com/p/broadcom-ble/

API Motorola Bluetooth с низким энергопотреблением http://developer.motorola.com/docs/bluetooth-low-energy-api/

Вы можете просмотреть эту страницу для получения дополнительной информации о выборе комплекта разработки. комплект для разработки BTLE (Bluetooth с низким энергопотреблением) - должен иметь профиль близости

person m4n07    schedule 27.09.2012
comment
У меня уже есть несколько профилей, реализованных с банкой, предоставленной поставщиком. И я понимаю, когда профиль подключен, отключен и т. д. Но пока система Android вызывает метод, о котором я упоминал выше, у меня нет выхода, с помощью которого я получаю статус подключения для устройства BLE, в отличие от того, что они делают для классического устройства в этот метод. - person user1400538; 27.09.2012
comment
Не могли бы вы уточнить ваше требование? почему вам нужно использовать эту функцию? можете ли вы попробовать сторонние API - person m4n07; 27.09.2012