簡體   English   中英

當應用程序在后台運行且沒有前台服務時如何檢測藍牙變化(連接狀態和特性)

[英]How to detect bluetooth changes (connection state and characteristic) when app is in background without a foreground service

我有一個設備,它是帶有按鈕的簡單BLE設備,並且我需要檢測用戶何時長時間按下該設備(通過特性更改),即使該應用程序在后台。

單擊此按鈕將觸發服務器的遠程呼叫。

我對此有兩個問題:

#1在沒有前台服務的情況下可以實現嗎?

#2如果我有運行BLE GATT回調的前台服務,如何檢測設備何時再次處於范圍內?

我當前的解決方案是讓前台服務始終在后台運行,但與此同時,用戶將需要始終顯示該應用程序的通知。

1:是的,您可以通過使用JobIntentService來實現此功能而無需使用前台服務。

此類服務不需要向您的用戶顯示通知。

要知道單擊設備按鈕的時間,您的JobIntentService可以掃描BLE設備,並且您可以在設備廣告的BLE數據中包括最后單擊的標志或時間戳。

為了避免耗盡電池,建議您不要連續掃描,而應每分鍾掃描幾秒鍾。

2:如果您的BLE掃描儀收到設備發布的BLE數據,則表明設備在范圍內。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM