Je suis en train de développer une application qui se connecte à une balise BLE, pour cela j'utilise l'API BluetoothLEAdvertisementWatcher. Quand je reçois une publicité, je veux me connecter à l'appareil pour lire les caractéristiques du GATT.FromBluetoothAddressAsync throws 'System.IO.FileNotFoundException' dans mscorlib.ni.dll
Je commence un BLEwatcher
BluetoothLEAdvertisementWatcher watcher;
watcher.Received += OnAdvertisementReceived;
watcher.Stopped += OnAdvertisementWatcherStopped;
watcher.Start();
Alors je tente d'accéder à l'appareil
private async void OnAdvertisementReceived(BluetoothLEAdvertisementWatcher watcher, BluetoothLEAdvertisementReceivedEventArgs eventArgs)
{
var address = eventArgs.BluetoothAddress;
BluetoothLEDevice device = await BluetoothLEDevice.FromBluetoothAddressAsync(eventArgs.BluetoothAddress);
Debug.WriteLine(device.Name + " - " + device.DeviceId);
....
Cela échoue (à la ligne FromBluetoothAddressAsync)
Une exception du type « système .IO.FileNotFoundException 's'est produite dans mscorlib.ni.dll mais n'a pas été gérée dans le code utilisateur
Informations supplémentaires: Le système ne trouve pas le fichier spécifié. (Exception de HRESULT: 0x80070002)
La chose amusante est: si j'ouvre la fenêtre de dispositifs bluetooth du système cela fonctionne très bien! Par conséquent, lorsque j'ouvre la fenêtre des périphériques bluetooth et que j'exécute l'application, l'erreur n'est pas levée. Lorsque je ferme la fenêtre des périphériques bluetooth, elle renvoie l'erreur. Notez qu'il lance toujours cette erreur dans une tâche d'arrière-plan.
Apparemment, cela fonctionne sur la version 10.0.10586.218. J'ai trouvé en ligne de quelqu'un avec le même numéro:
LUMIA 950, Windows 10, 1511, 10.0.14332.1001
Exception jetée sur FromIdAsync(): 'System.IO.FileNotFoundException' dans mscorlib.ni.dll
LUMIA 730, Windows 10, 1511, 10.0.10586.218
Exception jetée sur FindAllAsync(): « Sys tem.ArgumentException »
LUMIA 920, Windows 10, 1511, 10.0.10586.218
Pas d'erreur!
Le problème de connexion a été résolu par le commentaire que j'ai marqué comme réponse, en couplant d'abord puis en utilisant FromIdAsync. Cependant, j'ai aussi utilisé une partie de cela pour le réparer, merci. – vixez