BluetoothSerial plugin not working with ionic

I am trying to integrate bluetooth into my ionic app so that it can receive data from a bluetooth device. I tried to use the bluetooth plugin but I am getting a bunch of errors on both PC and Android device. I have installed bluetoothserial using the following command

cordova plugin add com.megster.cordova.bluetoothserial

%cordova plugins
com.ionic.keyboard 1.0.4 "Keyboard"
com.megster.cordova.bluetoothserial 0.4.3 "Bluetooth Serial"
cordova-plugin-whitelist 1.0.1-dev "Whitelist"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"

      

and here is my code

main.html

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-  scalable=no, width=device-width">
<title></title>

<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
 <script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular-route.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-tags-input/2.3.0/ng-tags-input.min.js"> </script>
<script src="js/app.js"></script>
</head>

      

app.js

angular.module('starter'   ['ionic','ngCordova','ngRoute','ngTagsInput'])
.run(function($ionicPlatform) {
 $ionicPlatform.ready(function() {
 // Hide the accessory bar by default (remove this to show the    accessory bar above the keyboard
 // for form inputs)
    $cordovaBluetoothSerial.isEnabled().then(
       function() {
          $cordovaDialogs.alert("Bluetooth LE is enabled", "Bluetooth LE", "GREAT!");
      },
      function() {
         $cordovaDialogs.alert("Bluetooth LE is NOT enabled", "Bluetooth LE", "Oops!");
      }
   );
if(window.cordova && window.cordova.plugins.Keyboard) {
  cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
  StatusBar.styleDefault();
}
 });
})
.controller('datactr',['$scope','$http'   ,'$cordovaBluetoothSerial',function($scope,$http,$cordovaBluetoothSerial)    {
console.log($cordovaBluetoothSerial.available());
}]);

      

I am getting the following errors:

TypeError: Unable to read property "accessible" undefined

Unprepared ReferenceError: $ cordovaBluetoothSerial not defined

can anyone help?

+3


source to share


3 answers


Use $ timeout, it works for me.

.controller('BlueController',function ($cordovaBluetoothSerial,$scope,$timeout) {...



$scope.checkBT = function (time) {
  $timeout(function () {
    $cordovaBluetoothSerial.isEnabled().then(fun,fun);
   },time); 
};
$scope.checkBT(750);

      

+2


source


This problem is more or less related to the fact that $ cordovaBluetoothSerial is not available when you try to use it.



Also you need to make sure you are not testing in your browser because that won't work! Test on a suitable Android or iOS device.

0


source


Try

$ionicPlatform.ready(function() {

          $cordovaBluetoothSerial.isEnabled().then(function(){
            $scope.habilitado = true;
              alert('Bluetooth habilitado');

            },function(){
              alert('Bluetooth nao habilitado');

          });

    });

      

0


source







All Articles