ich verwende Eddystone Leuchtfeuer und android Leuchtfeuer-Bibliothek (AltLib), ich bin ein Anfänger Benutzer mit diesen Baken; und für mein Projekt. Ich möchte die UUID des Beacons abrufen und auf einem EditView oder TextView anzeigen. Also habe ich versucht, einen Code, aber keine Möglichkeit, ich erhielt eine endlose Ausführung ... AS:die UUID von Eddystone Leuchtfeuer mit android Leuchtfeuer Bibliothek Erste
public class BeaconActivity extends ActionBarActivity implements BeaconConsumer {
public static final String TAG = "BeaconsEverywhere";
private BeaconManager beaconManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_beacon);
beaconManager = BeaconManager.getInstanceForApplication(this);
beaconManager.getBeaconParsers().add(new BeaconParser()
.setBeaconLayout("m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25"));
beaconManager.bind(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
beaconManager.unbind(this);
}
@Override
public void onBeaconServiceConnect() {
final Region region = new Region("myBeaons", Identifier.parse("<replaceBySomeUIID>"), null, null);
beaconManager.setMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
try {
Log.d(TAG, "didEnterRegion");
beaconManager.startRangingBeaconsInRegion(region);
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void didExitRegion(Region region) {
try {
Log.d(TAG, "didExitRegion");
beaconManager.stopRangingBeaconsInRegion(region);
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public void didDetermineStateForRegion(int i, Region region) {
}
});
beaconManager.setRangeNotifier(new RangeNotifier() {
@Override
public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) {
for(Beacon oneBeacon : beacons) {
Log.d(TAG, "distance: " + oneBeacon.getDistance() + " id:" + oneBeacon.getId1() + "/" + oneBeacon.getId2() + "/" + oneBeacon.getId3());
}
}
});
try {
beaconManager.startMonitoringBeaconsInRegion(region);
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_beacon, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
Plötzlich verstehe ich nicht ...! Kann mir jemand bei diesem Teil helfen?
das ein Problem ist, wenn ich die Beacons 00000000000000000000000000000001 UUID ändern ?? –
Ich bin mir nicht sicher, was genau Sie meinen, indem Sie "die Beacons der UUID ändern". Vielleicht können Sie die Schritte beschreiben, die Sie unternehmen, um dies zu tun. – davidgyoung
Um genauer zu sein, verwende ich ein Beacon ibks 105A, und ich habe seine UUID mit der ibks config-Tool-Anwendung manuell auf "000 .... 001" geändert. Meine Frage ist: Hat es Auswirkungen auf seine Erkennung? auch welchen Beacon Parser muss ich verwenden? Auch ich bin nicht in der Lage, die UUID noch –