2017-06-27 3 views
1

J'essaie d'analyser les périphériques BLE dans mon application de Windows 10 fond IOT (sans tête) en cours d'exécution sur Raspberry PI 3.L'utilisation de BluetoothLEAdvertisementWatcher dans l'application en arrière-plan?

J'ai aussi essayé d'utiliser BluetoothLEAdvertisementWatcher dans une application rieuse (avec interface utilisateur) sur la même machine Raspberry PI et travaillé.

Mon application sans tête est la plus simple car il peut être:

public sealed class StartupTask : IBackgroundTask 
{ 
    private readonly BluetoothLEAdvertisementWatcher _bleWatcher = 
     new BluetoothLEAdvertisementWatcher(); 

    public void Run(IBackgroundTaskInstance taskInstance) 
    { 
     _bleWatcher.Received += _bleWatcher_Received; 
     _bleWatcher.ScanningMode = BluetoothLEScanningMode.Active; 
     _bleWatcher.Start(); 
    } 

    private void _bleWatcher_Received(BluetoothLEAdvertisementWatcher sender, BluetoothLEAdvertisementReceivedEventArgs args) 
    { 

    } 
} 

_bleWatcher_Received est jamais frappé. Les capacités sont définies (Bluetooth, Internet, Proximité).

Quel est le problème? Qu'est-ce qui me manque?

+0

Pouvez-vous être plus clair? –

+0

Merci Joe. Que voulez-vous dire? – Tom

+0

Avez-vous obtenu l'application dirigée sur le rPi ou sur une autre machine? Soyez plus précis s'il vous plaît –

Répondre

1

Votre application s'arrête lorsque la méthode d'exécution est terminée. C'est pourquoi _bleWatcher_Received n'est jamais touché.

Pour vous éviter l'application de vous sortir besoin d'appeler la méthode « GetDeferral » comme ceci:

public void Run(IBackgroundTaskInstance taskInstance) 
{ 
    deferral = taskInstance.GetDeferral(); 

    //YOUR CODE HERE 
} 

Pour plus d'informations s'il vous plaît référence « Developing Background Applications ».