From 2a4c77335f101dc8d7113e3a0a81ee50d587b8c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20M=C5=82odawski?= Date: Fri, 2 Aug 2024 13:15:49 +0200 Subject: [PATCH] Check for activityRecognitionPermitted in ActivityRecognitionLocationProvider (#198) * Check for activityRecognitionPermitted in ActivityRecognitionLocationProvider * Fix typo --- .../provider/ActivityRecognitionLocationProvider.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java b/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java index 710fbbd6..2d185ded 100644 --- a/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +++ b/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java @@ -5,10 +5,13 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.PackageManager; import android.location.Location; +import android.Manifest; import android.os.Build; import android.os.Bundle; import android.os.PowerManager; +import androidx.core.app.ActivityCompat; import android.util.Log; import com.google.android.gms.common.ConnectionResult; @@ -147,13 +150,17 @@ private void disconnectFromPlayAPI() { } } + private boolean activityRecognitionPermitted() { + return Build.VERSION.SDK_INT < Build.VERSION_CODES.Q || ActivityCompat.checkSelfPermission(mContext, Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_GRANTED; + } + private void attachRecorder() { if (googleApiClient == null) { connectToPlayAPI(); } else if (googleApiClient.isConnected()) { if (isWatchingActivity) { return; } startTracking(); - if (mConfig.getStopOnStillActivity()) { + if (mConfig.getStopOnStillActivity() && activityRecognitionPermitted()) { ActivityRecognition.ActivityRecognitionApi.requestActivityUpdates( googleApiClient, mConfig.getActivitiesInterval(),