2017-02-02 3 views
1

Добрый день. Я разрабатываю приложение для Android, и я пытаюсь интегрировать маяк оценки с приложением. Дело в том, что я хочу иметь возможность обнаруживать, что конкретное устройство меняет UUID устройства, младший, майор.Как изменить UUID маяка оценки с помощью оценки android sdk?

Чтобы обнаружить и диапазон маяков я использую:

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. 
          } 
         } 
        } 
       } 
      }); 

Может кто-нибудь мне помочь? Я знаю, что для изменения UUID мне нужно подключиться к облаку оценки, но я не совсем понимаю, как (пример на их веб-сайте использует BeaconConnection, который устарел).

+0

Вы не можете изменить UUID iBeacon. –

+0

@AjayShrestha да, вы можете оценить –

ответ

1

Я использую этот метод, я нашел в Estimote andriod sdk, он устарел от Estimote, но работает без проблем, используя правильную настройку api в студии android.

Я пока не смог найти альтернативное решение, но если бы я нашел, я обновил свой ответ.

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(); 
} 
Смежные вопросы