Nano Hash - криптовалюты, майнинг, программирование

Ionic - Как проверить изменение состояния Bluetooth

В настоящее время я использую cordova.plugins.diagnostic, чтобы проверить, Вкл. или Выкл. Если Bluetooth выключен, то подсказка, предлагающая пользователю включить его, и кнопка «Продолжить» отключена. После того, как он уже включен, как я могу определить, что он уже включен, и включить кнопку «Продолжить».

Ниже приведен код, как определить, что Bluetooth включен/отключен:

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

Затем это код, как проверить изменения, сделанные для состояния Bluetooth:

$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;
   }
});

})

Но если я проверяю от Off до On или от On до Off, никаких предупреждений не появляется. Похоже, что обработчик не перезванивает.


Ответы:


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-макияж

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

состояние bluetooth слушать

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;
    }
});
25.05.2016
  • Спасибо, вы имеете в виду размещение cordova.plugins.diagnostic.setBluetoothState в событии кнопки «Продолжить»? Итак, как я могу включить эту кнопку после включения Bluetooth? 25.05.2016
  • используя ng-disabled <button class="button" ng-disabled="!bluetoothIsEnabled" on-tap="yourFunction($event)"></button> 25.05.2016
  • да, я это понимаю, но как эта кнопка активируется, тогда как bluetoothIsEnabled имеет значение false. Потому что из моего сценария я упоминаю, что Bluetooth выключен. После того, как пользователь включил Bluetooth, этот cordova.plugins.diagnostic.isBluetoothEnabled не обратный вызов для изменения значения bluetoothIsEnabled на true. 25.05.2016
  • извините, мне не хватает функции registerBluetoothStateChangeHandler, вы можете использовать ее для прослушивания статуса Bluetooth. 26.05.2016
  • Спасибо, это сработало. Но как с Андроидом? Потому что это событие применимо только для iOS. 26.05.2016
  • setBluetoothState - это только Android, но registerBluetoothStateChangeHandler и isBluetoothEnabled говорят, что поддерживают Android и iOS в документе плагина 26.05.2016
  • О да, я вижу. Я уже протестировал его, но registerBluetoothStateChangeHandler , кажется, не перезванивает после того, как я внес изменения в состояние Bluetooth. Я использовал Android версии 4.1.2 и 4.4.2. Я отредактировал свой вопрос, чтобы добавить свой новый код. 27.05.2016
  • если это проблема плагина, вы должны опубликовать свою проблему автору. github.com/dpa99c/cordova-diagnostic-plugin/issues 27.05.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..