Điều đầu tiên tôi muốn nói là đây là lần đầu tiên tôi sử dụng đèn hiệu. Tôi đang sử dụng thư viện AltBeaconThư viện Đèn hiệu Android của AltBeacon nhận được số lớn, nhỏ và UUID
Hiện tại tôi có một số việc đang hoạt động, ví dụ: khi tôi vào khu vực hoặc khi tôi rời khỏi nó .. cũng nhận được khoảng cách đến ngọn hải đăng một cách chính xác. Điều này hoạt động hoàn hảo. Tôi cũng nhận được UUID, chính và trẻ vị thành niên .. nhưng không biết tôi có đang làm đúng hay không.
Đây là mã của tôi:
public class Hello extends Activity implements BeaconConsumer {
protected static final String TAG = "readme";
private BeaconManager beaconManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hola);
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);
}
@Override
public void onBeaconServiceConnect() {
try {
beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", Identifier.parse("MY_UUID"), Identifier.parse("1"), null));
} catch (RemoteException e) {
}
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
if (beacons.size() > 0) {
Log.i(TAG, "The first beacon I see is about " + beacons.iterator().next().getDistance() + " meters away.");
Log.i(TAG, "Reading…"+"\n"+"proximityUuid:"+" "+ beacons.iterator().next().getId1()+"\n"+
"major:"+" "+beacons.iterator().next().getId2()+"\n"+
"minor:"+" "+beacons.iterator().next().getId3());}
}
});
beaconManager.setMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
Log.i(TAG, "I just saw an beacon for the first time!");
}
@Override
public void didExitRegion(Region region) {
Log.i(TAG, "I no longer see an beacon");
}
@Override
public void didDetermineStateForRegion(int state, Region region) {
Log.i(TAG, "I have just switched from seeing/not seeing beacons: " + state);
}
});
try {
beaconManager.startMonitoringBeaconsInRegion(new Region("myMonitoringUniqueId", null, null, null));
} catch (RemoteException e) {
}
}
@Override
protected void onDestroy() {
super.onDestroy();
beaconManager.unbind(this);
}
}
Như tôi đã nói, tôi nhận được UUID, các lớn và nhỏ, nhưng tôi được sử dụng
beaconManager.setRangeNotifier (new RangeNotifier() {...
setRangeNotifier
có được khoảng cách đến ngọn hải đăng , để nó được tự động cập nhật vài giây một lần, vì lý do này, mỗi khi nó được cập nhật lại, hãy lấy UUID, cái chính và cái nhỏ.
Đó có phải là nơi thích hợp để có UUID, người lớn và trẻ vị thành niên không? Tôi đã cố gắng để có được nó khi tôi nhập một khu vực:
@Override
public void didEnterRegion(Region region) {
Log.i(TAG, "I just saw an beacon for the first time!");
}
... nhưng không thành công.
Tôi đã tìm kiếm rất nhiều thông tin, nhưng không thể tìm thấy bất kỳ điều gì cụ thể. Ý định của tôi là có một biến chứa UUID, một biến khác chứa phần tử chính và biến còn lại chứa phần tử con. Đúng rồi?
Nếu đây không phải là cách phù hợp, nghĩa là gì? Nó đúng như tôi làm bây giờ?
Tôi rất cảm kích mọi sự trợ giúp và đề cập đến @davidgyoung… Tôi hy vọng không làm phiền.
Chúc mừng.
Cảm ơn bạn rất nhiều :)) – Sergio76