2016-09-19 95 views
1

我爲Android做計步器應用程序。操作原理如下: 首次啓動應用程序時,運行以前臺模式運行的服務。程序會提示用戶登錄Google帳戶。如果一切正常,則創建GoogleApiClient對象。然後在成功連接的情況下創建Fitness.SensorsApi,其中我只詢問系統的步數。由於我保存的數據不是很多,而是使用SharedPreferences而不是數據庫,並在那裏寫入新數據。如果應用程序正在運行,則mainActivity每秒連接到SharedPreferences以在屏幕上顯示新值。所有的工作都不錯。但有時候,停止步驟的數量。這可能發生在白天,有時會在每天00:00重置計數器後發生,有時幾天沒有問題。只幫助完全重啓應用程序。GoogleFit API有時不起作用

有好幾次數據不顯示在屏幕上,但服務已經工作並記錄了數據。 在這種情況下,應用程序重新啓動後,我立即收到整個時間段(掛起屏幕)的數據。該服務本身是100%實時的,因爲我每5秒鐘在日誌中發送一條消息。 如果有人遇到類似問題,請幫忙,可能是什麼原因。 GoogleApiClient可以丟失連接或其他內容。如何查找錯誤?我將非常感激。

回答

0

請檢查Google Fit的documentation以瞭解如何在Google fit中連接您的Android應用。確保您在項目中正確設置了本指南,尤其是您在Connect to the fitness service的第5步。欲瞭解更多信息,請查看SO question

以下是關於如何從Fitness入口點訪問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); 

有關其他信息,請查看此鏈接。