2015-09-07 6 views
9

Próbuję stworzyć aplikację Android do wykrywania sygnałów nawigacyjnych opartych na Gimbal przy użyciu Gimbal sdk, ale moja aplikacja nie może wykryć sygnału nawigacyjnego. Ale jeśli spróbuję użyć BluetoothGATT, będę w stanie wykryć sygnał nawigacyjny. Poniżej znajduje się część mojego kodu, który nasłuchuje zdarzeń typu beacon. Weryfikacja klucza API zakończyła się powodzeniem, ale nadal nie można wyświetlić odległości.Programowanie mojej aplikacji Android z Gimbal sdk nie wykrywa lampy gimbalowej

public class MainActivity extends Activity { 

    private PlaceManager placeManager; 
    private PlaceEventListener placeEventListener; 
    private BeaconEventListener beaconEventListener; 
    private BeaconManager beaconManager; 
    private String TAG = "beacon"; 

    public ArrayAdapter<String> listAdapter; 
    public ListView listView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     Gimbal.setApiKey(getApplication(), 
       "MY API KEY "); 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     initView(); 

     monitorPlace(); 

     listenBeacon(); 



     CommunicationManager.getInstance().startReceivingCommunications(); 

    } 

    private void listenBeacon() { 
     BeaconEventListener beaconEventListener = getBeaconEventListener(); 
     BeaconManager beaconManager = new BeaconManager(); 
     beaconManager.addListener(beaconEventListener); 
     beaconManager.startListening(); 
    } 

    private void monitorPlace() { 
     placeEventListener = getPlaceEventListener(); 

     // placeManager = PlaceManager.getInstance(); 
     // placeManager.addListener(placeEventListener); 
     placeManager = PlaceManager.getInstance(); 
     placeManager.addListener(placeEventListener); 
     placeManager.startMonitoring(); 
    } 

    private void initView() { 
     GimbalLogConfig.enableUncaughtExceptionLogging(); 
     listAdapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_expandable_list_item_1); 

     listView = (ListView) findViewById(R.id.list); 
     listView.setAdapter(listAdapter); 
     listAdapter.add(" Gimbal API Key got Set Successfuly"); 
     listAdapter.notifyDataSetChanged(); 
     GimbalDebugger.enableBeaconSightingsLogging(); 
    } 

    private BeaconEventListener getBeaconEventListener() { 
     Log.i(TAG, "BeaconEventListener started sucessfully..."); 
     BeaconEventListener beaconSightingListener = new BeaconEventListener() { 
      @Override 
      public void onBeaconSighting(BeaconSighting beaconSighting) { 

       super.onBeaconSighting(beaconSighting); 


       listAdapter.add(String.format("Name of Beacon is %s", 
         beaconSighting.getBeacon().getName())); 
       listAdapter.add(String.format("UUID is %s", beaconSighting 
         .getBeacon().getUuid())); 
       listAdapter.add(String.format("RSSI is %s", 
         beaconSighting.getRSSI())); 
       listAdapter.add(String.format("Battery Level is %s", 
         beaconSighting.getBeacon().getBatteryLevel())); 
       listAdapter.add(String.format("Temprature data is %s", 
         beaconSighting.getBeacon().getTemperature())); 

      } 
     }; 




    } 

    private PlaceEventListener getPlaceEventListener() { 

     PlaceEventListener obj = new PlaceEventListener() { 
      @Override 
      public void onBeaconSighting(BeaconSighting sight, List<Visit> visit) { 


       super.onBeaconSighting(sight, visit); 

       listAdapter.add(String.format("Beacon Found: %s", 
         sight.getBeacon())); 
       listAdapter.add(String.format("Name of Beacon is %s", sight 
         .getBeacon().getName())); 
       listAdapter.add(String.format("Identifier is %s", sight 
         .getBeacon().getIdentifier())); 
       listAdapter.add(String.format("RSSI is %s", sight.getRSSI())); 
       listAdapter.add(String.format("UUID is %s", sight.getBeacon() 
         .getUuid())); 
       listAdapter.add(String.format("Temprature is%s", sight 
         .getBeacon().getTemperature())); 
       listAdapter.add(String.format("BatteryLevel is %s", sight 
         .getBeacon().getBatteryLevel())); 
       listAdapter.add(String.format("Icon URL is %s", sight 
         .getBeacon().getIconURL())); 

       listAdapter.add(String.format("Start Visit for %s", visit 
         .iterator().toString())); 

      } 

      // @Override 
      public void onVisitStart(Visit visit) { 
       super.onVisitStart(visit); 

       listAdapter.add(String.format("Start Visit for %s", visit 
         .getPlace().getName())); 

       Toast.makeText(getApplicationContext(), 
         visit.getPlace().getName(), Toast.LENGTH_SHORT).show(); 
       listAdapter.notifyDataSetChanged(); 

      } 

      @Override 
      public void onVisitEnd(Visit visit) { 
       // TODO Auto-generated method stub 
       super.onVisitEnd(visit); 

       listAdapter.add(String.format("End Visit for %s", visit 
         .getPlace().getName())); 
       listAdapter.notifyDataSetChanged(); 

      } 

     }; 


     return obj; 
    } 

} 
+0

Przykładowy kod nie pokazać, jak używasz instancji BeaconEventListener. Czy dodałeś go do BeaconManager i zacząłeś słuchać? – Stanislav

+0

Tak Stworzyłem instancję dla BeaconEventListener i używając BeaconManager zacząłem słuchać. –

+0

Czy możesz dodać ten kod również do pytania? Stworzenie słuchacza nie dostarcza wielu szczegółów na temat tego, co mogło pójść nie tak. – Stanislav

Odpowiedz

5

Dodanie szczegółów sygnalizatora w menedżerze Gimbal rozwiąże problem. Got poniżej granicy z zespołu kardanowego

Jest to obowiązkowe, aby dodać sygnalizatory w kardanowego Managera do wykrywania sygnałów nawigacyjnych

Powiązane problemy