2017-11-24 2 views
-1

Mein ProblemWie didRangeBeaconsInRegion Anruf ein für alle Mal die UUID

Ich muss machen den kombinierten Aufruf für die ganze Region auf didRangeBeaconsInRegion jetzt für jede UUID zB machen:wenn i 2 haben Uuid Die didRangeBeaconsInRegion wird 2 mal aufgerufen und für 4 UUID didRangeBeaconsInRegion wird 4 mal aufgerufen, ebenso geht es weiter. Ich möchte didRangeBeaconsInRegion ein für alle Mal die UUID genannt werden, die ich auf Region gesetzt

Mein Code:

for (beaconparser.Beacon beacon : iBeacon.getBeacons()) { 
     try { 
      Identifier uuid = Identifier.parse(iBeacon.getUUID()); 
      Identifier major = Identifier.parse("" + iBeacon.getMajor()); 
      Identifier minor = Identifier.parse("" + iBeacon.getMinor()); 
      beaconManager.startRangingBeaconsInRegion(new Region(iBeacon.getUUID() + major + minor, uuid, null, null)); 
      setMonitoring(false); 
     } catch (RemoteException e) { 
      e.printStackTrace(); 
     } 
} 

Antwort

0

Sorry, die API funktioniert einfach nicht so. Die einfachste Lösung besteht darin, eine Platzhalterregion einzurichten, die alle Bezeichner auf null setzt. Dadurch erhalten Sie einen Rückruf für alle Beacons.

Sie können if-Anweisungen verwenden, um die Beacon-Bezeichner mit denen zu vergleichen, die Ihnen wichtig sind, und sie nur zu verarbeiten, wenn sie mit einer Ihrer Regionen übereinstimmen.