我将 Github 项目从 Gimbal 打开到 android studio 并让它更新所有 gradle 属性。但是当我尝试运行该项目时,它没有发现任何信标,最糟糕的是,logcat 中没有指出问题所在的错误。
这是我运行的代码:
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();
}}
提前致谢。
编辑1:
我在构建 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.