Đây có phải là bố cục chính xác để phát hiện các biểu tượng với Thư viện báo hiệu Android của AltBeacon không?


93

Tôi đã sửa đổi thành công ứng dụng triển khai tham chiếu của Thư viện báo hiệu Android bằng cách sử dụng bố cục báo hiệu sau , để nó phát hiện thiết bị iBeacon mà tôi có trong tay:

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);
    }
}

Là người mới đối với nội bộ của gói tin BLE, tôi không chắc liệu đây có phải là bố cục chính xác để sử dụng hay không. Thư viện xác nhận tiêu chuẩn AltBeacon và tài liệu của nó không đề cập đến cách phát hiện thiết bị iBeacon.

  • Mã này có phát hiện tất cả các thiết bị iBeacon không? nghĩa là m:tiền tố có quá hạn chế hay đó là chuỗi byte phù hợp với đặc tả iBeacon?
  • Tương tự, phần còn lại của bố cục có khớp chính xác với thông số iBeacon không?

Tài liệu tham khảo:


Ứng dụng tham chiếu hiện đã ngừng hoạt động ..
BlueTrin

1
@BlueTrin Cảm ơn, đã cập nhật liên kết đến repo mới.
vào

Câu trả lời:


66

Điều này phù hợp với tôi: "m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, p: 24-24"

Tôi không nghĩ rằng bạn cần phải khớp phần 4c00 vì đó là id nhà sản xuất, vì vậy bạn có thể bỏ phần đó đi và bắt đầu với m: 2-3 = 0215 Mọi thứ khác có vẻ ổn, và nó có vẻ hoạt động.


8
Cảm ơn! Từ thử nghiệm với đèn hiệu Estimote, tôi có thể xác nhận rằng sự m:2-3=0215thay đổi này thực sự cần thiết.
matiash

8
Điều này cũng hiệu quả với tôi..tôi đã sử dụng .. beaconManager.getBeaconParsers (). Add (new BeaconParser (). SetBeaconLayout ("m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22 -23, tr: 24-24 "));
John

2
Bạn đọc bố cục đó như thế nào? M, i và p là gì? Tôi có một beacon mua từ Trung Quốc. Bằng cách sử dụng ứng dụng Bluetooth LE Scanner, tôi có thể tìm thấy UUID của đèn hiệu, chính và phụ. Nhưng làm cách nào để tìm mẫu UUID để đưa nó vào setBeaconLayout?
emen

3
@AimanB Vui lòng tham khảo điều này: stackoverflow.com/questions/25319682/… . Trong đó, m: Dữ liệu nhà sản xuất, i: UUID vùng lân cận, i: Số chính, i: Số nhỏ, p: Công suất tín hiệu, d: mức pin. Chúng đại diện cho độ lệch byte. (Bạn cần thêm 6 khi đang đếm). Ví dụ: ID nhà sản xuất nằm trong khoảng từ 8 đến 9 trong chuỗi "m: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, tr: 24-24 ”.
trueblue

3
có cách nào để quét tìm bất kỳ beacon nào xung quanh bất kể nó có nổi tiếng hay không?
N Jay

3

Bạn có thể tải xuống thông số kỹ thuật của iBeacon (nhấp vào "Tải xuống tác phẩm nghệ thuật và thông số kỹ thuật").

Trong phiên bản hiện tại, ID công ty phải0x4C00và loại báo hiệu phải là 0x0215. Tất cả các trường khác là bắt buộc và như bạn đã chỉ định.

Vì vậy, có, bạn chính xác là chính xác và nó sẽ phát hiện tất cả các iBeacons tuân thủ.

OT: Nó cũng quy định rằng khoảng thời gian quảng cáo phải là 100ms, nhưng tôi thực sự nghi ngờ tất cả các iBeacons đều dính vào điều đó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.