Estimote Telemetry: невозможно отслеживать температуру - PullRequest
0 голосов
/ 07 июня 2018

Я следую примеру, приведенному в документе разработчиков Estimotes.Код выглядит следующим образом: я сталкиваюсь с «ошибкой несовместимого типа» при попытке передать значение переменной scanID.

package e.user.estimotetelemetry;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;

import com.estimote.coresdk.recognition.packets.EstimoteTelemetry;
import com.estimote.coresdk.service.BeaconManager;

import java.util.List;

public class MainActivity extends AppCompatActivity {
private BeaconManager beaconManager;
private BeaconManager bm;
private String scanId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    beaconManager = new BeaconManager(this);


    beaconManager.setTelemetryListener(new BeaconManager.TelemetryListener() {
        @Override
        public void onTelemetriesFound(List<EstimoteTelemetry> telemetries) {
            for (EstimoteTelemetry tlm : telemetries) {
                Log.d("TELEMETRY", "beaconID: " + tlm.deviceId +
                        ", temperature: " + tlm.temperature + " °C");
            }
        }
    });
        }

@Override protected void onStart() {
    super.onStart();
    beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
        @Override
        public void onServiceReady() {
   //         scanId =  beaconManager.startTelemetryDiscovery();  // This line shows up an incompatibility error as : incompatible types required java.lang.string found void
        }
    });
}
@Override
protected void onStop() {
    super.onStop();
 //   beaconManager.stopTelemetryDiscovery(scanId); //incompatible types required java.lang.string found void
}
}

Было бы здорово, если бы кто-то мог помочь с этим. Заранее спасибо!

1 Ответ

0 голосов
/ 11 июня 2018

API для обнаружения телеметрии немного изменился, и похоже, что документы не обновлялись соответствующим образом - я только что исправил это.

В самой последней версии SDK, startTelemetryDiscovery нетбольше возвращает scanId, а stopTelemetryDiscovery больше не принимает.Вы просто запускаете и останавливаете сканирование:

@Override protected void onStart() {
    super.onStart();
    beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
        @Override
        public void onServiceReady() {
            beaconManager.startTelemetryDiscovery();
        }
    });
}

@Override protected void onStop() {
    super.onStop();
    beaconManager.stopTelemetryDiscovery();
}
...