¿Android KitKat permite que los dispositivos compatibles con Bluetooth LE actúen como un dispositivo periférico?
Hasta Android 4.3, un dispositivo Android con Bluetooth Low Energy apoyo sólo podría actuar como un dispositivo central. Como se da en el Android 4.3 Bluetooth LE docs:
Android 4.3 (API Level 18) incorpora soporte de plataforma integrado para Bluetooth Low Energy en la función central y proporciona API que las aplicaciones pueden usar para descubrir dispositivos, consultar servicios y características de lectura / escritura.
- Android Ble desconexión de tiempo
- Estado de Android Bluetooth 133 en gatt.readCharacteristic
- OnServicesDiscovered nunca se llama mientras se conecta a GATT Server
- Combine iBeacon bluetooth de baja energía con Android 4.3
- ¿Cómo usar el perfil de PROXIMITY PROFILE, IMMEDIATE ALERT SERVICE y Find Me Profile en android 4.3 BLE?
Con la introducción de Android 4.4 KitKat , ¿también puede comportarse como un dispositivo periférico ahora? No pude encontrar ninguna documentación de eso. Si no, entonces tenemos que esperar para Android 4.5 para obtener el modo periférico BTLE en el dispositivo Android? ¿O hay alguna forma alternativa en la que un dispositivo Android se puede hacer para actuar como un dispositivo periférico?
- Intervalo de tiempo de conexión BLE de Android
- Lectura Bluetooth RSSI para perfil de proximidad BLE en Android
- Problema de emparejamiento de Bluetooth Low Energy (BLE) de Moto G
- ¿Es posible conectar el dispositivo Android Wear con otro dispositivo BLE directamente sin interacción del dispositivo telefónico?
- BluetoothGatt que muestra 10.000 características idénticas para el servicio
- Android Cómo leer las propiedades de BLE Readable Writable Notifiable GATT Características
- ¿Qué es exactamente txPower para Bluetooth LE y cómo se utiliza?
- Android BLE: onCharacteristicRead () parece estar bloqueado por subprocesos
http://developer.android.com/sdk/api_diff/19/changes.html
Mirando la diferencia completa de api, la respuesta en breve: NO
Unesdoc.unesco.org unesdoc.unesco.org
Para agregar soporte de rol periférico ahora tienes que ensuciarte las manos para personalizar la pila de Bluedroid en el nivel de OS, o intentar suerte en los desarrolladores de XDA para ver si alguien ha hecho esto antes. No estoy seguro de que el teléfono Android actual soporte periférico a nivel de hardware, sin embargo.
No en esta versión, pero hay pruebas de que vendrá pronto.
Si miras en BluetoothGatt.java en las fuentes de android-19 hay nuevos métodos listen
y setAdvData
que no estaban allí en android-18.
Sin embargo, estos no están documentados, ya que no creo que el apoyo nativo esté completo todavía. La última comprobación en AOSP para el modo periférico se titulaba "LE: Añadir soporte para funciones periféricas (2/4)". Además, setAdvData
y listen
tienen este código:
if (mContext == null || !mContext.getResources().getBoolean(com.android.internal.R.bool.config_bluetooth_le_peripheral_mode_supported)) { throw new UnsupportedOperationException("BluetoothGatt#listen is blocked"); }
Buscando en android / platform_frameworks_base / blob / master / core / res / res / valores / config.xml de las fuentes de Android se puede ver que está actualmente deshabilitado:
<!-- Boolean indicating if current platform supports BLE peripheral mode --> <bool name="config_bluetooth_le_peripheral_mode_supported">false</bool>
Gracias a todos por las respuestas. Sólo para actualizar, a partir de junio de 2014, se ofrece en la vista previa Android L Developer. Espero verlo en el lanzamiento oficial de Android L
Desde su blog Nuevo en Android: L Preview para desarrolladores y Google Play Services 5.0 :
La L Developer Preview le permite explorar muchas de las nuevas características y capacidades de la próxima versión de Android y ofrece todo lo que necesita para comenzar a desarrollar y probar en la nueva plataforma. Éstos son algunos de los aspectos más destacados para los desarrolladores:
Modo periférico BLE : los dispositivos Android ahora pueden funcionar en el modo periférico Bluetooth Low Energy (BLE). Las aplicaciones pueden utilizar esta capacidad para transmitir su presencia a dispositivos cercanos; por ejemplo, ahora puede crear aplicaciones que permitan que un dispositivo funcione como podómetro o monitor de salud y transmita datos a otro dispositivo BLE.
Actualizar:
La mala noticia es que el modo BLE Peripheral sólo funcionará en los nuevos dispositivos Android (según la fecha), a saber, Nexus 6 y Nexus 9. No funcionará en Nexus 4 / Nexus 5 / nexus 7 / nexus 10, incluso si usted Actualizarlo a Android 5.0. Puede leer el comentario de uno de los gestores de proyectos de Android en el modo de publicidad BLE que no funciona . Él dice:
Hemos introducido el modo periférico BLE en Android 5.0 Lollipop. Nexus 6 y Nexus 9 son los dos primeros dispositivos Nexus de producción que soportan el modo periférico BLE. Debido a la dependencia del chipset de hardware, los dispositivos Nexus más antiguos (4/5/7) no tendrán acceso a la función de Lollipop.