diff --git a/app/src/main/java/com/proculite/logmylocation/MainActivity.java b/app/src/main/java/com/proculite/logmylocation/MainActivity.java index a47be33..7627ca4 100644 --- a/app/src/main/java/com/proculite/logmylocation/MainActivity.java +++ b/app/src/main/java/com/proculite/logmylocation/MainActivity.java @@ -1,9 +1,11 @@ package com.proculite.logmylocation; +import android.Manifest; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; +import android.content.pm.PackageManager; import android.location.Location; import android.location.LocationListener; import android.os.Bundle; @@ -12,8 +14,11 @@ import android.util.Log; import android.widget.TextView; import androidx.activity.EdgeToEdge; +import androidx.activity.result.ActivityResultLauncher; +import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; +import androidx.core.content.ContextCompat; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; @@ -87,4 +92,25 @@ public class MainActivity extends AppCompatActivity implements LocationListener, Log.d(TAG, "Service null binding."); ServiceConnection.super.onNullBinding(name); } + + private void ensureLocationPermission() + { + int fineLocationPermission = ContextCompat + .checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION); + boolean fineLocationGranted = fineLocationPermission == PackageManager.PERMISSION_GRANTED; + + if(!fineLocationGranted) + { + ActivityResultLauncher permissionsLauncher = registerForActivityResult( + new ActivityResultContracts.RequestMultiplePermissions(), isGranted -> {}); + permissionsLauncher.launch(new String[]{ + Manifest.permission.ACCESS_FINE_LOCATION, + Manifest.permission.ACCESS_BACKGROUND_LOCATION + }); + } + else + { + Log.d(TAG, "Permissions already granted."); + } + } } \ No newline at end of file