Probably unrelated, but I was having problems with the barcode scanner returning the wrong info (with an earlier version of ionic), but just on Android. Adding the following code fixed it.
// this "unclogs" the Android event pipeline. Otherwise have issues, like getting the
// results of the previous scan, instead of the current one.
// https://github.com/wildabeast/BarcodeScanner/issues/107
// https://github.com/zeroasterisk/MeteorRider/issues/16
if (device.platform === 'Android') {
checkMessageInterval = setInterval(function () {
cordova.exec(null, null, '', '', [])
}, 200);
}
cordova.plugins.barcodeScanner.scan(
function (res) {
...