0

Я пытаюсь использовать API распознавания активности Google и получать только результаты при изменении активности или примерно каждые 30 минут (+ - 10 минут или более, если действие не изменяется). Вместо этого, когда я называю кусок кода ниже, я получаю результаты деятельности Признание очень часто в моей IntentService, как каждую минуту:Слишком часто используется API распознавания активности Google

ActivityRecognition 
      .ActivityRecognitionApi 
      .requestActivityUpdates(mGoogleApiClient, 60000 * 30, getSensingServicePendingIntent()) 
      .setResultCallback(this); 

Метод создания PendingIntent объекта:

private PendingIntent getSensingServicePendingIntent(Integer userLabel) { 
    Intent i = new Intent(mContext, SenseDataIntentService.class); 

    return PendingIntent 
      .getService(mContext, 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 
} 

Метод получить GoogleApiClient:

private GoogleApiClient buildGoogleApiClient() { 
    mGoogleApiClient = new GoogleApiClient.Builder(mContext) 
      .addApi(ActivityRecognition.API) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .build(); 
    return mGoogleApiClient; 
} 

Я знаю, что the official documentation говорит это:

Действия могут приниматься чаще, чем параметр detectIntervalMillis, если другое приложение также запросило обновления активности с большей скоростью. Он также может получать обновления быстрее, когда служба обнаружения активности получает сигнал о том, что текущая активность может измениться, например, если устройство все еще длительное время, а затем отключено от зарядного устройства телефона.

Но я просто думаю, что получаю обновления слишком часто (даже если активность не меняется). Любые решения, так как я хочу сэкономить дренаж батареи.

+0

Возможный дубликат: http://stackoverflow.com/questions/27500602/android-activityrecognitionapi-requestactivityupdates-are-too-frequent-how-can –

ответ

0

Я думаю, что понял. Google Fit работал в фоновом режиме, и он постоянно слушал изменения активности. Поэтому я получил все эти результаты (как написано в документации).