Gimbal Github演示不适用于Android,也不能说明它无法正常工作

时间:2016-07-13 11:30:43

标签: android beacon gimbal

我从Gimbal打开了Github项目到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.

1 个答案:

答案 0 :(得分:0)

我发现了我的错误:

更改我的包时,我忘了更改applicationId以及(build.gradle)。