2017-06-19 4 views
1

J'ai essayé de rechercher des balises, mais je ne suis pas en mesure de le faire. J'ai essayé toutes les questions de StackOverflow mais je n'ai pas trouvé de réponse.Impossible de rechercher des balises

Ci-dessous mon code:

MainActivity:

public class MainActivity extends AppCompatActivity implements BeaconConsumer { 

protected static final String TAG = "MonitoringActivity"; 
private BeaconManager beaconManager; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
beaconManager = BeaconManager.getInstanceForApplication(this); 
    beaconManager.getBeaconParsers().add(new BeaconParser(). 
      setBeaconLayout("m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25")); 
    beaconManager.bind(this);} 

@Override 
public void onBeaconServiceConnect() { 
    beaconManager.addMonitorNotifier(new MonitorNotifier() { 
     @Override 
     public void didEnterRegion(Region region) { 
      Log.i(TAG, "I just saw an beacon for the first time!"); 
     } 

     @Override 
     public void didExitRegion(Region region) { 
      Log.i(TAG, "I no longer see an beacon"); 
     } 

     @Override 
     public void didDetermineStateForRegion(int state, Region region) { 
      Log.i(TAG, "I have just switched from seeing/not seeing beacons: "+state); 
     } 
    }); 

    try { 
     beaconManager.startMonitoringBeaconsInRegion(new Region("myMonitoringUniqueId", Identifier.parse(null, null, null)); 
    } catch (RemoteException e) { } 
} 

MANIFESTE

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.BLUETOOTH"/> 
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 

gradle.properties

manifestmerger.enabled=true 

logcat

06-19 20:03:37.403 7459-7459/com.example.beaconscanner D/BeaconParser: Parsing beacon layout: m:2-3=beac,i:4-19,i:20-21,i:22-23,p:24-24,d:25-25 

06-19 20:03:37.796 7459-7459/com.example.beaconscanner I/MonitoringActivity: I have just switched from seeing/not seeing beacons: 0 

06-19 20:03:37.933 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON 
06-19 20:03:37.938 7459-7471/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12 

06-19 20:03:39.038 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON 
06-19 20:03:39.040 7459-7729/com.example.beaconscanner D/BluetoothAdapter: STATE_ON 
06-19 20:03:39.044 7459-7470/com.example.beaconscanner D/BluetoothLeScanner: onClientRegistered() - status=0 clientIf=12 

J'ai ajouté des autorisations pour l'emplacement et Bluetooth selon Android SDK supérieur à 23

Répondre

0

Il ressort de vos lignes de débogage Android est la détection des périphériques Bluetooth, ce qui laisse supposer que bluetooth est activé et votre application est autorisée à numériser.

Quelques choses à vérifier:

  1. Assurez-vous que votre BeaconLayout est correcte. "m: 2-3 = beac, i: 4-19, i: 20-21, i: 22-23, p: 24-24, d: 25-25" est pour AltBeacon. Si votre balise transmet un format différent (par exemple iBeacon ou Eddystone), vous aurez besoin d'une mise en page différente. Une bonne référence est ici: https://beaconlayout.wordpress.com/

  2. Assurez-vous que votre appareil envoie effectivement un signal de balise valide. Je suggère mon Locate app for Android, car il détecte automatiquement toutes les balises annonçant les formats iBeacon, AltBeacon et Eddystone.

+0

Cela fonctionne la solution changeait le Beaconlayout à 'm: 2-3 = 0215, i: 4-19, i: 20-21, i: 22-23, p: 24-24' – Burhan