I opened the Github project from Gimbal into android studio and let it update all the gradle properties. But when I try to run the project it doesn't discover any beacons and the worst part is that there is no errors in the logcat that point out what the problem is.
Here's the code that I ran:
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();
}}
Thanks in advance.
EDIT 1:
I get a warning when building the apk.
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.
I found my mistake:
When changing my package I forgot to change the applicationId aswell (build.gradle).