2016-04-23 15 views
0

Ich bin nicht in der Lage, ibeacon Präsenz mit der android Beacon-Bibliothek zu erkennen. Dies ist mein CodeNicht in der Lage, ibeacon mit android Beacon-Bibliothek zu erkennen

BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this); 
     beaconManager = BeaconManager.getInstanceForApplication(this); 
     if (beaconManager != null && !beaconManager.isBound(this)) { 
      beaconManager.getBeaconParsers().add(new BeaconParser(). 
        setBeaconLayout("m:0-3=4c000215,i:4-19,i:20-21,i:22-23,p:24-24")); 
      beaconManager.bind(this); 

Und in der onBeaconServiceConnect Methode

public void onBeaconServiceConnect() { 
     BeaconManager beaconManager = BeaconManager.getInstanceForApplication(this); 
     beaconManager.setRangeNotifier(new RangeNotifier() { 
      @Override 
      public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 
       for (Beacon beacon : beacons) { 
        Log.i("MainActivity", "I see a beacon that is about "+beacon.getDistance()+" meters away."); 
        System.out.print("Beacon seen"+ beacon.getId1()); 
       } 
      } 
     }); 

     try { 
      beaconManager.startRangingBeaconsInRegion(new Region("myRangingUniqueId", null, null, null)); 
     } catch (RemoteException e) { } 
    } 

ich auch diese Berechtigungen in meinem AndroidManifest.xml hinzugefügt

<uses-sdk 
     android:minSdkVersion="18" 
     android:targetSdkVersion="18" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.BLUETOOTH"/> 
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

In der Ausgabe

16:59:26.571 3571-3571/com.example.kev.altbeacon W/BluetoothCrashResolver: Can't read macs from BluetoothCrashResolverState.txt 
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon W/ModelSpecificDistanceCalculator: Cannot find match for this device. Using default 
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon W/ModelSpecificDistanceCalculator: Cannot find match for this device. Using default 
04-23 16:59:26.581 3571-3571/com.example.kev.altbeacon E/MonitoringStatus: Deserialization exception, message: $s 
04-23 16:59:26.621 3571-3635/com.example.kev.altbeacon D/libEGL: loaded /vendor/lib64/egl/libGLES_mali.so 
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon D/libEGL: eglInitialize EGLDisplay = 0x7f8787f178 
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon I/OpenGLRenderer: Initialized EGL, version 1.4 
04-23 16:59:26.641 3571-3635/com.example.kev.altbeacon D/mali_winsys: new_window_surface returns 0x3000, [1440x2560]-format:1 
04-23 16:59:26.651 3571-3571/com.example.kev.altbeacon W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView) 
04-23 16:59:26.651 3571-3635/com.example.kev.altbeacon D/libGLESv1: DTS_GLAPI : DTS is not allowed for Package : com.example.kev.altbeacon 
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon I/InjectionManager: dispatchCreateOptionsMenu :com.example.kev.altbeacon.MainActivity 
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon I/InjectionManager: dispatchPrepareOptionsMenu :com.example.kev.altbeacon.MainActivity 
04-23 16:59:26.761 3571-3571/com.example.kev.altbeacon D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 96 - 0, 0) vi=Rect(0, 96 - 0, 0) or=1 
04-23 16:59:26.791 3571-3571/com.example.kev.altbeacon I/Timeline: Timeline: Activity_idle id: [email protected] time:27543539 
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:27.881 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper 
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:28.991 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper 
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 
04-23 16:59:30.101 3571-3571/com.example.kev.altbeacon D/BluetoothLeScanner: could not find callback wrapper 
04-23 16:59:31.241 3571-3571/com.example.kev.altbeacon D/BluetoothAdapter: STATE_ON 

Ich habe den Code w ausprobiert mit zwei verschiedenen Telefonen und es funktioniert nicht bei jedem von ihnen. Dieser Ausgang ist, wenn ich den Code mit einem Samsung S6 versuche. Mit einem Samsung s4 erhalte ich nicht diese state-ok/kann nicht gefunden ... Nachrichten, ich habe gerade diese

04-23 17:09:22.290 26020-26020/com.example.kev.altbeacon I/Timeline: Timeline: Activity_idle id: [email protected] time:6819065 
04-23 17:09:36.083 26020-26020/com.example.kev.altbeacon V/ActivityThread: updateVisibility : ActivityRecord{1a3840b9 [email protected] {com.example.kev.altbeacon/com.example.kev.altbeacon.MainActivity}} show : true 

Antwort

2

ein paar Tipps:

  • Wenn Ihre Geräte haben Android 6 +, müssen Sie sicherstellen, dass Ihnen die hier beschriebene Standortgenehmigung erteilt wurde: http://developer.radiusnetworks.com/2015/09/29/is-your-beacon-app-ready-for-android-6.html

  • Probieren Sie die Standardversion Locate app aus, die dieselbe Bibliothek verwendet. Wenn diese App die Beacons nicht erkennen kann, liegt möglicherweise ein Problem mit den Beacon-Sendern selbst vor.

  • Stellen Sie sicher, dass in den Einstellungen der Standort aktiviert ist.

  • Stellen Sie sicher, dass Bluetooth in den Einstellungen aktiviert ist.

+0

Vielen Dank. Ich gewährte die Erlaubnis, wie im Link beschrieben, und es funktionierte. Auch der Standort wurde aktiviert, aber nicht für die App. – user3235881