目前,我正在使用cordova.plugins.diagnostic检查蓝牙当前是开启还是关闭。如果蓝牙处于关闭状态,则会提示用户将其打开并且“继续按钮”被禁用。在它已经打开之后,如何检测它已经打开并启用“继续”按钮。
以下是如何检测蓝牙启用/禁用的代码:
cordova.plugins.diagnostic.isBluetoothEnabled(function(enabled){
console.log("Bluetooth is " + (enabled ? "enabled" : "disabled"));
}, function(error){
console.error("The following error occurred: "+error);
});
然后,这是如何检查对蓝牙状态所做的更改的代码:
$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;
}
});
})
但是,如果我从关闭测试开启或开启开启关闭,则不会出现任何警报。好像处理程序没有回调。
答案 0 :(得分:2)
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化妆
<button class="button" ng-disabled="!bluetoothIsEnabled" on-tap="yourFunction($event)"></button>
bluetooth state listen
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;
}
});