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

@@ -162,7 +162,7 @@ public class FilePicker extends Activity implements AdapterView.OnItemClickListe
}
// if a parent directory exists, add it at the first position
if (mDirectory.getParentFile() != null) {
if (mDirectory.getParentFile() != null && mDirectory.getParentFile().canRead()) {
mFilesWithParentFolder = new File[mFiles.length + 1];
mFilesWithParentFolder[0] = mDirectory.getParentFile();
System.arraycopy(mFiles, 0, mFilesWithParentFolder, 1,
@@ -180,7 +180,7 @@ public class FilePicker extends Activity implements AdapterView.OnItemClickListe
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_file_picker);
mDefaultDirectory = getExternalFilesDir(null).getAbsolutePath();
mDefaultDirectory = getExternalFilesDir(null) != null ? getExternalFilesDir(null).getAbsolutePath() : "/sdcard/";
mFilePickerIconAdapter = new FilePickerIconAdapter(this);
GridView gridView = (GridView) findViewById(R.id.filePickerView);
gridView.setOnItemClickListener(this);

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)) {

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016-2018 devemux86
* Copyright 2016-2019 devemux86
* Copyright 2018 Longri
*
* This program is free software: you can redistribute it and/or modify it under the
@@ -15,12 +15,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.backend.CanvasAdapter;
import org.oscim.backend.canvas.Bitmap;
import org.oscim.backend.canvas.Color;
@@ -78,17 +80,25 @@ public class LocationTextureActivity extends BitmapTileActivity implements Locat
}
@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
@@ -115,6 +125,13 @@ public class LocationTextureActivity extends BitmapTileActivity implements Locat
}
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)) {