簡體   English   中英

iOS:檢測附近的應用用戶

[英]iOS: detect app users nearby

我想構建和應用程序,可以在65英尺范圍內使用我的應用程序檢測其他iPhone。 據我所知,我有以下選擇:

  1. 使用藍牙定期檢查是否有我的應用程序在該范圍內的設備。 將找到的設備列表發送到服務器。 這里的問題是電池消耗。 是否真的會在一段時間后自動禁用藍牙?

  2. 我可以將BLE技術用於此目的嗎? 如果是這樣,你知道哪些設備支持BLE嗎?

您認為最好的選擇是什么? 我錯過了其他選擇嗎?

謝謝

更新我計划每20秒或甚至更頻繁地運行搜索。

這個問題沒有簡單的答案。

藍牙有兩種口味:“常規”藍牙,用於免提設備,耳機等,以及BLE(低功耗藍牙)

常規藍牙設備必須配對。 (我對常規藍牙比BLE不太熟悉,所以請用一點點解釋這個位。)為了配對,必須將它們置於“可發現”模式,廣播它們的ID。 這是一個電池耗盡,只是簡單地完成。 這不是一個“永遠在線”的解決方案。

BLE的射程可達60米,因此它可以滿足您的需求。

BLE設備可以長時間“宣傳”為“外圍設備”。 其他藍牙設備可以充當“中心”,並要求在檢測到某些外圍設備時得到通知。 我不確定你是否可以將iOS設備廣告(廣播)作為BLE外設,而它在后台和/或設備被鎖定,但它肯定會在它運行時做廣告。 我很確定你可以注冊,當你從后台檢測到某個BLE外設時會收到通知,但不是肯定的。

iBeacons是BLE的特定用途,具有一些額外的限制和一些額外的能力。 iBeacon是一個簡單的發送器,它定期發送UUID加上主要和次要值以及信號強度校准值(通常每秒一次)。您不能將任何其他數據添加到iBeacon傳輸。 當應用程序位於前台時,iOS只能充當iBeacon發射器。 如果您的應用移動到后台,它將停止傳輸。 期。

但是,您甚至可以從后台收聽iBeacon信號。 並且,如果您已注冊為iBeacon的監聽器並且系統因內存不足而終止您的應用程序,則系統仍會代表您監聽這些信標。 如果iOS檢測到您正在偵聽的信標,則會在需要時重新啟動,並在后台通知。 然后,您可以發布本地通知以引起用戶的注意。

iBeacons可能是您最好的選擇,但您需要用戶在前台主動運行您的應用程序以傳輸信號。 這將很快耗盡用戶的電池電量。

一種可能的解決方案是讓每個設備每隔預定時間段將其位置發送到您的服務器(更頻繁,更好但資源更密集)。 然后,從服務器查詢數據並獲取您附近所有設備的位置。

請記住,這可能對實時數據收集不是很有用。 例如,如果您想每30秒左右發送一次數據,這不是一個好的選擇。

如果要每15-20分鍾左右獲取一次數據,請使用此選項。

暫無
暫無

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

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