BluetoothAdapter ActionDiscoveryFinished
Acabo de empezar a echar un vistazo a xamarin y ahora quiero escanear dispositivos bluetooth. Por lo tanto, utilizo el código siguiente:
BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter; bluetoothAdapter.StartDiscovery();
Y tengo la siguiente class
para obtener el resultado:
- Xamarin Forms ToolBarItem (Número sobre el icono) Notificación
- Genymotion emulador de Android para Xamarin
- Xamarin hace que DisplayAlert no se muestre cuando se llama desde una función llamada por un delegado
- Xamarin extraña excepción en VS2015
- Java.lang.IllegalArgumentException: ya agregado Lokio / AsyncTimeout
[BroadcastReceiver] [IntentFilter(new [] {BluetoothAdapter.ActionDiscoveryFinished})] public class BluetoothReceiver : BroadcastReceiver { public BluetoothReceiver() { } public override void OnReceive(Context context, Intent intent) { if (BluetoothAdapter.ActionDiscoveryFinished.Equals(intent.Action)) { } } }
También he establecido los permisos para mi aplicación en BLUETOOTH
y BLUETOOTH_ADMIN
. Todo funciona bien y OnReceive
-Method se llama correctamente. Mi problema ahora es: ¿Cómo obtengo los dispositivos encontrados de los parámetros del método OnReceive?
- Compilar la aplicación de Android en iOS
- MvxAdapter personalizado - Métodos de reemplazo que no se llaman
- ClassNotFoundException al inflar una biblioteca de enlace usando Xamarin
- No se pueden utilizar controladores USB Android en Windows 10
- Transferencia eficiente de datos de objetos personalizados entre las actividades de Android
- Comprobación de Android de la fecha cambiada
- SQLite.SQLiteException lanzado en Xamarin.Android al intentar crear una tabla
- Creación de aplicaciones de mapas de muestras monodroide
ACTION_DISCOVERY_FINISHED
no le dice nada más que la acción de descubrimiento ha terminado. https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_DISCOVERY_FINISHED
Si desea capturar dispositivos de la exploración, debe leer lo que startDiscovery()
tiene que decir con respecto a encontrar dispositivos:
El proceso de descubrimiento generalmente implica una exploración de consulta de aproximadamente 12 segundos, seguida de una exploración de página de cada dispositivo nuevo para recuperar su nombre Bluetooth.
Se trata de una llamada asíncrona, que volverá inmediatamente. Regístrese para ACTION_DISCOVERY_STARTED y ACTION_DISCOVERY_FINISHED intentos para determinar exactamente cuándo se inicia y finaliza el descubrimiento. Regístrese para que ACTION_FOUND sea notificado cuando se encuentren dispositivos Bluetooth remotos.
https://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#startDiscovery ()
Por lo tanto, debe utilizar ACTION_FOUND
y analizar el EXTRA_DEVICE
para dispositivos:
Acción de difusión: Dispositivo remoto descubierto.
Se envía cuando se detecta un dispositivo remoto durante la detección.
Siempre contiene los campos adicionales EXTRA_DEVICE y EXTRA_CLASS. Puede contener los campos adicionales EXTRA_NAME y / o EXTRA_RSSI si están disponibles.
https://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#ACTION_FOUND
En la secuencia de eventos, haría lo siguiente:
-
ACTION_DISCOVERY_STARTED
– Que iniciará el descubrimiento -
ACTION_FOUND
– Que encontrará un dispositivo -
ACTION_DISCOVERY_FINISHED
– Que terminará el descubrimiento
- Trayecto de bola de dibujo de Android
- Diferencia entre android: inputType = "textPassword", "textVisiblePassword", "textWebPassword" y "numberPassword" en android?