Android 10 targetSdkVersion with runtime permissions, #728

This commit is contained in:
Emux
2019-06-17 11:11:05 +03:00
parent fcf7272f2e
commit c526599e20
10 changed files with 68 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2018 devemux86
* Copyright 2016-2019 devemux86
*
* This program is free software: you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License as published by the Free Software
@@ -14,12 +14,14 @@
*/
package org.oscim.android.test;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Build;
import android.os.Bundle;
import org.oscim.core.MapPosition;
import org.oscim.layers.LocationLayer;
@@ -41,17 +43,25 @@ public class LocationActivity extends BitmapTileActivity implements LocationList
}
@Override
protected void onResume() {
super.onResume();
public void onRequestPermissionsResult(final int requestCode, final String[] permissions, final int[] grantResults) {
if (requestCode == 0) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED)
enableAvailableProviders();
}
}
@Override
public void onStart() {
super.onStart();
enableAvailableProviders();
}
@Override
protected void onPause() {
super.onPause();
public void onStop() {
locationManager.removeUpdates(this);
super.onStop();
}
@Override
@@ -78,6 +88,13 @@ public class LocationActivity extends BitmapTileActivity implements LocationList
}
private void enableAvailableProviders() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 0);
return;
}
}
locationManager.removeUpdates(this);
for (String provider : locationManager.getProviders(true)) {