ng-cordova
Version:
[ngCordova](http://ngcordova.com/) ==========
219 lines (195 loc) • 5.69 kB
JavaScript
// install : cordova plugin add https://github.com/don/BluetoothSerial.git
// link : https://github.com/don/BluetoothSerial
angular.module('ngCordova.plugins.bluetoothSerial', [])
.factory('$cordovaBluetoothSerial', ['$q', '$window', function ($q, $window) {
return {
connect: function (address) {
var q = $q.defer();
var disconnectionPromise = $q.defer();
var isConnected = false;
$window.bluetoothSerial.connect(address, function () {
isConnected = true;
q.resolve(disconnectionPromise);
}, function (error) {
if(isConnected === false) {
disconnectionPromise.reject(error);
}
q.reject(error);
});
return q.promise;
},
// not supported on iOS
connectInsecure: function (address) {
var q = $q.defer();
$window.bluetoothSerial.connectInsecure(address, function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
disconnect: function () {
var q = $q.defer();
$window.bluetoothSerial.disconnect(function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
list: function () {
var q = $q.defer();
$window.bluetoothSerial.list(function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
discoverUnpaired: function () {
var q = $q.defer();
$window.bluetoothSerial.discoverUnpaired(function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
setDeviceDiscoveredListener: function () {
var q = $q.defer();
$window.bluetoothSerial.setDeviceDiscoveredListener(function (data) {
q.notify(data);
});
return q.promise;
},
clearDeviceDiscoveredListener: function () {
$window.bluetoothSerial.clearDeviceDiscoveredListener();
},
showBluetoothSettings: function () {
var q = $q.defer();
$window.bluetoothSerial.showBluetoothSettings(function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
isEnabled: function () {
var q = $q.defer();
$window.bluetoothSerial.isEnabled(function () {
q.resolve();
}, function () {
q.reject();
});
return q.promise;
},
enable: function () {
var q = $q.defer();
$window.bluetoothSerial.enable(function () {
q.resolve();
}, function () {
q.reject();
});
return q.promise;
},
isConnected: function () {
var q = $q.defer();
$window.bluetoothSerial.isConnected(function () {
q.resolve();
}, function () {
q.reject();
});
return q.promise;
},
available: function () {
var q = $q.defer();
$window.bluetoothSerial.available(function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
read: function () {
var q = $q.defer();
$window.bluetoothSerial.read(function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
readUntil: function (delimiter) {
var q = $q.defer();
$window.bluetoothSerial.readUntil(delimiter, function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
write: function (data) {
var q = $q.defer();
$window.bluetoothSerial.write(data, function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
subscribe: function (delimiter) {
var q = $q.defer();
$window.bluetoothSerial.subscribe(delimiter, function (data) {
q.notify(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
subscribeRawData: function () {
var q = $q.defer();
$window.bluetoothSerial.subscribeRawData(function (data) {
q.notify(data);
}, function (error) {
q.reject(error);
});
return q.promise;
},
unsubscribe: function () {
var q = $q.defer();
$window.bluetoothSerial.unsubscribe(function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
unsubscribeRawData: function () {
var q = $q.defer();
$window.bluetoothSerial.unsubscribeRawData(function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
clear: function () {
var q = $q.defer();
$window.bluetoothSerial.clear(function () {
q.resolve();
}, function (error) {
q.reject(error);
});
return q.promise;
},
readRSSI: function () {
var q = $q.defer();
$window.bluetoothSerial.readRSSI(function (data) {
q.resolve(data);
}, function (error) {
q.reject(error);
});
return q.promise;
}
};
}]);