2016-09-19 2 views
1

나는 안드로이드 용 보수계를 사용합니다. 작동 원리는 다음과 같습니다. 앱을 처음 실행하면 포 그라운드 모드에서 실행되는 서비스가 실행됩니다. Google 계정에 대한 사용자 로그인 메시지가 표시됩니다. 모든 것이 잘되면 GoogleApiClient 객체가 만들어집니다. 그런 다음 성공적인 연결의 경우 시스템의 단계 수만 묻는 Fitness.SensorsApi가 생성됩니다. 필자는 많은 데이터가 아니라 데이터베이스 대신 SharedPreferences를 사용하여 새로운 데이터를 작성합니다. 응용 프로그램이 실행 중이면 mainActivity가 SharedPreferences에 매초마다 연결되어 새 값이 화면에 표시됩니다. 모든 일이 나쁘지 않습니다. 그러나 때로는 단계 수를 줄이십시오. 매일 매일 00:00에 리셋 카운터를 설치 한 후 문제가 없는데 며칠이 걸리는 경우가 있습니다. 응용 프로그램을 완전히 다시 시작하는 데 도움이됩니다.GoogleFit API가 작동하지 않는 경우가 있습니다.

그리고 여러 번 데이터가 화면에 표시되지 않지만 서비스가 작동하고 데이터를 기록했습니다. 이 경우 응용 프로그램을 다시 시작한 후 전체 기간 동안 데이터를 즉시 받았습니다 (중단 된 화면). 5 초마다 로그에 메시지를 보내기 때문에 서비스 자체는 100 % 실시간입니다. 비슷한 일이 생기면 도움을주십시오. 그 이유는 무엇입니까? GoogleApiClient가 연결 또는 다른 것을 잃을 수 있습니까? 오류를 추적하는 방법? 나는 매우 감사 할 것입니다.

답변

0

Google에 적합하도록 Android 앱을 연결하는 방법에 맞는 Google의 documentation을 확인하세요. 프로젝트에서이 가이드를 올바르게 설정했는지, 특히 Connect to the fitness service의 5 단계를 확인하십시오. 자세한 내용은 SO question을 확인하십시오.

다음은 피트니스 입력 지점에서 Sensors API에 액세스해야하는 샘플 코드입니다.

GoogleApiClient client = new GoogleApiClient.Builder(context) 
.addApi(Fitness.SENSORS_API) 
... 
.build(); 
client.connect(); 

PendingResult<Status> pendingResult = Fitness.SensorsApi.add(
client, 
new SensorRequest.Builder() 
.setDataType(DataType.TYPE_STEP_COUNT_DELTA) 
.setSamplingDelay(1, TimeUnit.MINUTES) // sample once per minute 
.build(), 
myStepCountListener); 

자세한 내용은이 링크를 확인하십시오.

관련 문제