2017-02-02 2 views
1

Guten Tag. Ich entwickle eine Android-App und versuche, ein Beacon mit der App zu integrieren. Die Sache ist, ich will in der Lage sein, ein bestimmtes Gerät zu entdecken, ändern Sie die UUID des Gerätes, Moll, Major.Wie ändere ich die UUID eines Estimote Beacons durch eine Schätzung von Android SDK?

zu entdecken und die Baken reichen Ich verwende:

beaconManager.startRanging(region); 

      beaconManager.setRangingListener(new BeaconManager.RangingListener() { 
       @Override 
       public void onBeaconsDiscovered(Region region, List<Beacon> list) { 

        if (!list.isEmpty()) { 

         for(Beacon b : list){ 

          if (b.getMacAddress().equals(macaddress)){ 

%%Now that i have the Beacon b I would like to change it's UUID, major and minor. 
          } 
         } 
        } 
       } 
      }); 

mir jemand helfen? Ich weiß, dass ich, um die UUID zu ändern, muss ich mit der Wolke Schätzer verbunden sein, aber ich bin nicht ganz bekommen, wie (Das Beispiel auf ihrer Website verwendet BeaconConnection, die veraltet ist).

+0

Sie können die UUID von iBeacon nicht ändern. –

+0

@AjayShrestha ja können Sie für schätzen –

Antwort

1

Ich benutze diese Methode, die ich auf Estimote andriod sdk gefunden habe, ist es von Estimote veraltet, aber funktioniert mit Problem durch die Verwendung der richtigen API-Einstellung in Android Studio.

Ich konnte noch keine alternative Lösung finden, aber wenn ich gefunden habe, werde ich meine Antwort aktualisieren.

private void editBeacon(final Beacon beacon, UUID newUuid, int newMinor, int newMajor) { 
    connection = new BeaconConnection(this, beacon, new BeaconConnection.ConnectionCallback() { 
     @Override 
     public void onAuthorized(BeaconInfo beaconInfo) { 

     } 

     @Override 
     public void onConnected(BeaconInfo beaconInfo) { 
      Log.d(TAG, "Authenticated to beacon. Info: " + beaconInfo); 
      Log.d(TAG, "Advertising internal: " + connection.advertisingIntervalMillis().get()); 
      Log.d(TAG, "Broadcasting transmitPower: " + connection.broadcastingPower().get()); 
     } 

     @Override 
     public void onAuthenticationError(EstimoteDeviceException exception) { 
      Log.d(TAG, "Authentication Error: " + exception); 
     } 

     @Override 
     public void onDisconnected() { 
      Log.d(TAG, "Disconnected"); 
     } 
    }); 

    connection.authenticate(); 

    // Interact with beacon. 

    // You can update beacon's properties in following way: 
    connection.edit() 
      .set(connection.proximityUuid(), newUuid) 
      .set(connection.major(), newMajor) 
      .set(connection.minor(), newMinor) 
      .commit(new BeaconConnection.WriteCallback() { 
       @Override 
       public void onSuccess() { 
       } 

       @Override 
       public void onError(EstimoteDeviceException exception) { 
       } 
      }); 

    // Do not forget to close connection. 
    connection.close(); 
} 
Verwandte Themen