Cannot keep BTLE running in background in Ionic 3












2















Either I'm doing something wrong or the latest versions of iOS and Android no longer allow this functionality.



I am using (https://github.com/katzer/cordova-plugin-background-mode.git) in conjunction with the native BLE plugin for Ionic 3.



I need to maintain (or find and connect) to pair bluetooth devices in the background but it seems that iOS especially will severe the background BLE connection after a period of time (like 10-15 minutes). I know that iOS stops background activity after 10 minutes, but the katzer plugin is suppose to allow for BTLE processes to continue in the background.



Here is what I am trying to keep the BLE connection alive. I need to be able to connect or detect a disconnect from BLE so I can report in to my server the last known geolocation of the device.



 this.backgroundMode.enable();
this.backgroundMode.on("activate").subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();

console.log('backgroundMode activate');
window.setTimeout(() => {
this.bleLoop()
}, 60000)
});


Where bleLoop() is a function that does a scan for new devices to connect to.



Has ANYONE been able to get BLE working to connect to new devices or call the disconnect callback in the background using ionic 3?










share|improve this question























  • Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

    – JoshL
    Nov 13 '18 at 21:08
















2















Either I'm doing something wrong or the latest versions of iOS and Android no longer allow this functionality.



I am using (https://github.com/katzer/cordova-plugin-background-mode.git) in conjunction with the native BLE plugin for Ionic 3.



I need to maintain (or find and connect) to pair bluetooth devices in the background but it seems that iOS especially will severe the background BLE connection after a period of time (like 10-15 minutes). I know that iOS stops background activity after 10 minutes, but the katzer plugin is suppose to allow for BTLE processes to continue in the background.



Here is what I am trying to keep the BLE connection alive. I need to be able to connect or detect a disconnect from BLE so I can report in to my server the last known geolocation of the device.



 this.backgroundMode.enable();
this.backgroundMode.on("activate").subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();

console.log('backgroundMode activate');
window.setTimeout(() => {
this.bleLoop()
}, 60000)
});


Where bleLoop() is a function that does a scan for new devices to connect to.



Has ANYONE been able to get BLE working to connect to new devices or call the disconnect callback in the background using ionic 3?










share|improve this question























  • Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

    – JoshL
    Nov 13 '18 at 21:08














2












2








2


1






Either I'm doing something wrong or the latest versions of iOS and Android no longer allow this functionality.



I am using (https://github.com/katzer/cordova-plugin-background-mode.git) in conjunction with the native BLE plugin for Ionic 3.



I need to maintain (or find and connect) to pair bluetooth devices in the background but it seems that iOS especially will severe the background BLE connection after a period of time (like 10-15 minutes). I know that iOS stops background activity after 10 minutes, but the katzer plugin is suppose to allow for BTLE processes to continue in the background.



Here is what I am trying to keep the BLE connection alive. I need to be able to connect or detect a disconnect from BLE so I can report in to my server the last known geolocation of the device.



 this.backgroundMode.enable();
this.backgroundMode.on("activate").subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();

console.log('backgroundMode activate');
window.setTimeout(() => {
this.bleLoop()
}, 60000)
});


Where bleLoop() is a function that does a scan for new devices to connect to.



Has ANYONE been able to get BLE working to connect to new devices or call the disconnect callback in the background using ionic 3?










share|improve this question














Either I'm doing something wrong or the latest versions of iOS and Android no longer allow this functionality.



I am using (https://github.com/katzer/cordova-plugin-background-mode.git) in conjunction with the native BLE plugin for Ionic 3.



I need to maintain (or find and connect) to pair bluetooth devices in the background but it seems that iOS especially will severe the background BLE connection after a period of time (like 10-15 minutes). I know that iOS stops background activity after 10 minutes, but the katzer plugin is suppose to allow for BTLE processes to continue in the background.



Here is what I am trying to keep the BLE connection alive. I need to be able to connect or detect a disconnect from BLE so I can report in to my server the last known geolocation of the device.



 this.backgroundMode.enable();
this.backgroundMode.on("activate").subscribe(() => {
this.backgroundMode.disableWebViewOptimizations();

console.log('backgroundMode activate');
window.setTimeout(() => {
this.bleLoop()
}, 60000)
});


Where bleLoop() is a function that does a scan for new devices to connect to.



Has ANYONE been able to get BLE working to connect to new devices or call the disconnect callback in the background using ionic 3?







bluetooth background ionic3 btle






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 13 '18 at 20:43









JoshLJoshL

727924




727924













  • Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

    – JoshL
    Nov 13 '18 at 21:08



















  • Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

    – JoshL
    Nov 13 '18 at 21:08

















Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

– JoshL
Nov 13 '18 at 21:08





Also, just FYI, I can see the bleloop getting called for those 10 minutes or so in the background, but if a BTLE device comes into range the scan DOES NOT pick it up. It's like the app doesn't have permission or something to use BTLE in the background.

– JoshL
Nov 13 '18 at 21:08












0






active

oldest

votes











Your Answer






StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53289200%2fcannot-keep-btle-running-in-background-in-ionic-3%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53289200%2fcannot-keep-btle-running-in-background-in-ionic-3%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Florida Star v. B. J. F.

Error while running script in elastic search , gateway timeout

Adding quotations to stringified JSON object values