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:

 [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?

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:

  1. ACTION_DISCOVERY_STARTED – Que iniciará el descubrimiento
  2. ACTION_FOUND – Que encontrará un dispositivo
  3. ACTION_DISCOVERY_FINISHED – Que terminará el descubrimiento
  • La aplicación no se ejecuta en el emulador de Visual Studio para Android en Visual Studio 2015
  • Configuración de ViewModel para MvxFragment
  • Java.lang.NoClassDefFoundError: com / android / utils / ILogger en Visual Studio 2015
  • Xamarin - Error Fixing "La tarea Aapt falló inesperadamente"
  • No se puede crear una carpeta / archivo en el sistema de archivos de Android con PCLStorage o Xamarin Forms Labs
  • Android System WebView bloquea las aplicaciones de Android! "Las piedras sepulcrales están deshabilitadas en las compilaciones de usuarios de JB MR2 +"
  • Desactivar ViewRootImpl en Android Log?
  • Establecer tipo de letra personalizado en Sugerencia, TextInputLayout
  • Java.lang.NoClassDefFoundError: android.support.v7.app.AppCompatDelegateImplV14 en Xamarin Android
  • cómo implementar el proyecto androide xamarin a Xamarin Android Player en VS 2015
  • ¿Por qué no puedo acceder al punto de interrupción cuando empiezo a depurar la aplicación Android de Xamarin?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.