Apakah ini tata letak yang benar untuk mendeteksi iBeacons dengan Perpustakaan Beacon Android AltBeacon?

93

Saya telah berhasil memodifikasi aplikasi implementasi referensi dari Android Beacon Library menggunakan tata letak beacon berikut , sehingga mendeteksi perangkat iBeacon yang saya miliki:

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this);
        beaconManager.getBeaconParsers().add(new BeaconParser().
               setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24"));
        beaconManager.bind(this);
    }
}

Menjadi baru di internal paket BLE, saya tidak yakin apakah ini adalah tata letak yang benar untuk digunakan. Pustaka ini mendukung standar AltBeacon dan dokumentasinya tidak menyebutkan cara mendeteksi perangkat iBeacon.

  • Akankah kode ini mendeteksi semua perangkat iBeacon? yaitu apakah m:prefiksnya terlalu membatasi atau apakah urutan byte yang benar yang cocok dengan spesifikasi iBeacon?
  • Demikian pula, apakah tata letak lainnya sama persis dengan spesifikasi iBeacon?

Referensi:

ento
sumber
Aplikasi referensi sedang down sekarang ..
BlueTrin
1
@BlueTrin Terima kasih, memperbarui tautan ke repo baru.
hingga

Jawaban:

66

Ini berhasil untuk saya: "m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, p: 24-24"

Saya tidak berpikir Anda perlu mencocokkan bagian 4c00 karena itu adalah id pabrikan, jadi Anda mungkin dapat membiarkannya dan mulai dengan m: 2-3 = 0215 Semuanya terlihat benar, dan tampaknya berfungsi.

mobiledevbrick
sumber
8
Terima kasih! Dari pengujian dengan beacon Estimote saya dapat mengonfirmasi bahwa m:2-3=0215perubahan memang diperlukan.
matiash
8
Ini juga berhasil untuk saya..saya dulu .. beaconManager.getBeaconParsers (). Add (new BeaconParser (). SetBeaconLayout ("m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22 -23, p: 24-24 "));
Yohanes
2
Bagaimana Anda membaca tata letak itu? Apa itu m, i dan p? Saya memiliki suar out-of-the-box yang dibeli dari China. Dengan menggunakan aplikasi Bluetooth LE Scanner, saya dapat menemukan UUID beacon, mayor dan minor. Tapi bagaimana cara menemukan pola UUID untuk memasukkannya setBeaconLayout?
emen
3
@AimanB Mohon lihat ini: stackoverflow.com/questions/25319682/… . Dalam hal ini, m: Data Produsen, i: UUID Kedekatan, i: Nomor Mayor, i: Nomor Kecil, p: Daya Sinyal, d: level baterai. Mereka mewakili offset byte. (Anda perlu menambahkan 6 sambil menghitung). Mis: ID Produsen ada di antara 8 dan 9 di string "m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, p: 24-24 ".
TrueBlue
3
apakah ada cara untuk memindai suar di sekitar terlepas dari apakah perkiraannya atau tidak?
N Jay
3

Anda dapat mengunduh spesifikasi iBeacon (klik "Unduh Karya Seni dan Spesifikasi").

Dalam versi saat ini ID Perusahaan harus menjadi 0x4C00, dan jenis suar harus 0x0215. Semua bidang lainnya wajib diisi, dan seperti yang Anda tentukan.

Jadi ya, Anda benar dan itu akan mendeteksi semua iBeacons yang sesuai.

OT: Ini juga menentukan bahwa interval iklan harus 100ms, tapi saya benar-benar meragukan semua iBeacons tetap berpegang pada itu.

Timmmm
sumber