2016-05-25 17 views
0

Momentan verwende ich cordova.plugins.diagnostic, um zu überprüfen, ob Bluetooth momentan ein- oder ausgeschaltet ist. Wenn Bluetooth ausgeschaltet ist, wird eine Aufforderung angezeigt, den Benutzer zum Aktivieren und Deaktivieren der Schaltfläche "Weiter" zu veranlassen. Nachdem es bereits eingeschaltet ist, wie kann ich erkennen, dass es bereits eingeschaltet ist und den Continue Button aktivieren.Ionic - So überprüfen Sie die Bluetooth-Statusänderung

Im Folgenden ein Code ist, wie Bluetooth zu erkennen ist aktivieren/deaktivieren:

cordova.plugins.diagnostic.isBluetoothEnabled(function(enabled){ 
    console.log("Bluetooth is " + (enabled ? "enabled" : "disabled")); 
}, function(error){ 
    console.error("The following error occurred: "+error); 
}); 

Dann ist dies der Code, wie die Änderungen für Bluetooth-Zustand gemacht zu überprüfen:

$ionicPlatform.ready(function() { 
    cordova.plugins.diagnostic.registerBluetoothStateChangeHandler(function(state){ 

    if(state === cordova.plugins.diagnostic.bluetoothState.POWERED_ON){ 
     alert("Bluetooth is able to connect"); 
     $scope.bluetoothIsEnabled = true; 
    } 

    else if(state === cordova.plugins.diagnostic.bluetoothState.POWERED_OFF){ 
     alert("Bluetooth is Off"); 
     $scope.bluetoothIsEnabled = false; 
    } 
}); 

})

Wenn ich jedoch von Aus zu Ein oder Ein zu Aus teste, wird keine Warnung angezeigt. Es scheint, als wäre der Handler kein Rückruf.

Antwort

1
cordova.plugins.diagnostic.isBluetoothEnabled(function(enabled){ 
    if (enabled) { 
     // bluetooth already on 
    } else { 
     // bluetooth off 
    } 
}, function(error){ 
    console.error("The following error occurred: "+error); 
}); 

cordova.plugins.diagnostic.setBluetoothState(function(){ 
    console.log("Bluetooth was enabled"); 
}, function(error){ 
    console.error("The following error occurred: "+error); 
}, true); 

html Make-up

<button class="button" ng-disabled="!bluetoothIsEnabled" on-tap="yourFunction($event)"></button> 

bluetooth Zustand hören

cordova.plugins.diagnostic.registerBluetoothStateChangeHandler(function(state){ 
    // "unknown", "resetting", "unsupported", "unauthorized", "powered_off", "powered_on" 
    if (state == "powered_on") { 
     $scope.bluetoothIsEnabled = true; 
    } else { 
     $scope.bluetoothIsEnabled = false; 
    } 
}); 
+0

Danke, meinen Sie, indem 'cordova.plugins.diagnostic.setBluetoothState' in einem Ereignis "Weiter-Knopf"? Wie kann ich diese Taste aktivieren, nachdem das Bluetooth eingeschaltet ist? –

+0

mit 'ng-deaktiviert'' ' –

+0

yup, ich verstehe das, aber wie diese Schaltfläche aktiviert, während bluetoothIsEnabled ist falsch. Weil ich von meinem Szenario erwähne, bevor das Bluetooth ausgeschaltet ist. Nachdem der Benutzer das Bluetooth aktiviert hat, ruft dieser 'cordova.plugins.diagnostic.isBluetoothEnabled' nicht Callback auf, um den Wert' bluetoothIsEnabled' auf 'true' zu setzen. –

Verwandte Themen