Ich öffnete das Github-Projekt von Gimbal in android Studio und ließ es alle großen Eigenschaften aktualisieren. Aber wenn ich versuche, das Projekt auszuführen, entdeckt es keine Beacons und der schlimmste Teil ist, dass es im Logcat keine Fehler gibt, die auf das Problem hinweisen.Gimbal Github Demo funktioniert nicht für Android und zeigt nicht, warum es nicht funktioniert
Hier ist der Code, den ich lief:
public class MainActivity extends Activity {
private PlaceManager placeManager;
private BeaconManager bm;
private PlaceEventListener placeEventListener;
private ArrayAdapter<String> listAdapter;
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_expandable_list_item_1);
listView = (ListView) findViewById(R.id.list);
listView.setAdapter(listAdapter);
listAdapter.add("Setting Gimbal API Key");
listAdapter.notifyDataSetChanged();
Gimbal.setApiKey(this.getApplication(), "my api code ");
bm = new BeaconManager();
bm.addListener(new BeaconEventListener() {
@Override
public void onBeaconSighting(BeaconSighting beaconSighting) {
super.onBeaconSighting(beaconSighting);
Log.d("beacon1", beaconSighting.getBeacon().toString());
Log.d("beacon2", String.format("", beaconSighting.getRSSI()));
}
});
bm.startListening();
placeEventListener = new PlaceEventListener() {
@Override
public void onVisitStart(Visit visit) {
super.onVisitStart(visit);
listAdapter.add(String.format("Start Visit for %s", visit.getPlace().getName()));
listAdapter.notifyDataSetChanged();
Log.d("1", String.valueOf(visit.getArrivalTimeInMillis()));
Log.d("2", String.valueOf(visit.getDepartureTimeInMillis()));
Log.d("3", String.valueOf(visit.getPlace()));
Log.d("4", String.valueOf(visit.getDwellTimeInMillis()));
BeaconSighting demo = new BeaconSighting();
Beacon beac = demo.getBeacon();
Log.d("", beac.getUuid());
}
@Override
public void onVisitEnd(Visit visit) {
super.onVisitEnd(visit);
listAdapter.add(String.format("End Visit for %s", visit.getPlace().getName()));
listAdapter.notifyDataSetChanged();
Log.d("ending", "ending");
}
};
placeManager = PlaceManager.getInstance();
placeManager.addListener(placeEventListener);
placeManager.startMonitoring();
CommunicationManager.getInstance().startReceivingCommunications();
}}
Vielen Dank im Voraus.
EDIT 1:
erhalte ich eine Warnung, wenn die apk Gebäude.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.gimbal.location.established.e) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.
Error:warning: Ignoring InnerClasses attribute for an anonymous inner class
Error:(com.gimbal.location.established.f) that doesn't come with an
Error:associated EnclosingMethod attribute. This class was probably produced by a
Error:compiler that did not target the modern .class file format. The recommended
Error:solution is to recompile the class from source, using an up-to-date compiler
Error:and without specifying any "-target" type options. The consequence of ignoring
Error:this warning is that reflective operations on this class will incorrectly
Error:indicate that it is *not* an inner class.