[英]Can a HTC advertise itself as a BLE Beacon?
我一直在做一些關於BLE和iBeacons的工作。 目前我知道你可以將你的iPhone變成iBeacon但是我還沒有看到任何有關Android手機是否可行的細節 - 特別是HTC One就像我得到的那樣;)
有關此事的任何建議,細節或網站鏈接將不勝感激,
謝謝,
史蒂夫
Android設備有一個公共API,只能從Android 5.0開始傳輸BLE廣告。 您需要在HTC One上安裝此操作系統才能在常規應用中執行此操作。 我已經制作了一個使用無知識產權的AltBeacon標准傳輸的應用程序,並將其放在Play商店中。 。 源代碼可在此處獲得。 同樣,你需要Android L才能工作。
或者,Android 4.4.3也有隱藏的 API,允許傳輸BLE廣告。 針對4.4.3構建發射器應用程序有三個挑戰:
您必須從源手動編譯特殊版本的Android SDK以解鎖隱藏的API,以便您可以構建您的應用程序。
在4.4.3中傳輸所需的權限需要系統權限,
因此,您必須將手機設為root用戶才能將其安裝在特殊位置。 這使得在Play商店中分發此類應用程序變得不切實際。
4.4.3中的錯誤將廣告的長度限制為比發送20字節信標標識符和單字節參考tx功率值所需的字節少一個字節。 這意味着你不得不放棄后一個場,這使得無法“范圍”或估計從其他設備到發射機的距離。
只要您的手機是L或5.0(我在Nexus播放器上試過這個)
建立大衛所寫的內容。 下載AltBeacon確保你檢查分支機構android-l-apis使用./gradlew版本構建你的aar並包含在你的項目中。
Beacon beacon = new Beacon.Builder()
.setId1("00000000-7777-5555-3333-000000000000")
.setId2("1")
.setId3("2")
.setManufacturer(0x004c)
.setTxPower(-59)
.setDataFields(Arrays.asList(new Long[]{0l}))
.build();
mBeaconTransmitter = new BeaconTransmitter(this, new BeaconParser().setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"));
mBeaconTransmitter.startAdvertising(beacon);
不確定你是否會使用0x004c來擾亂Apple ...這是他們公司的制造代碼。 如果你打算生產,我會更多地研究它。 但對於工程測試,可以測試一下。
我能夠在iOS上的Gimbal應用程序和Android上的iBeacon Locate中將此信標檢測為iBeacon。
如果您的設備支持Android 5 Lollipop,則可以使用此功能: https : //code.google.com/p/android-developer-preview/issues/detail?id = 1570#c52
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.