簡體   English   中英

HTC可以將自己宣傳為BLE Beacon嗎?

[英]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構建發射器應用程序有三個挑戰:

  1. 您必須從源手動編譯特殊版本的Android SDK以解鎖隱藏的API,以便您可以構建您的應用程序。

  2. 在4.4.3中傳輸所需的權限需要系統權限,
    因此,您必須將手機設為root用戶才能將其安裝在特殊位置。 這使得在Play商店中分發此類應用程序變得不切實際。

  3. 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.

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