READ_EXTERNAL_STORAGE for android Q
This commit is contained in:
parent
96540f4a50
commit
6a1ed20e07
@ -227,7 +227,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
|
||||
public static final int REQUEST_ID_READ_EXTERNAL_STORAGE = 2001;
|
||||
|
||||
private boolean checkAndRequestPermissions() {
|
||||
private boolean checkAndRequestPermissions() {
|
||||
|
||||
if (ContextCompat.checkSelfPermission(
|
||||
this, Manifest.permission.READ_EXTERNAL_STORAGE) ==
|
||||
|
@ -1,8 +1,10 @@
|
||||
package com.localtransfer;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Environment;
|
||||
import android.util.Log;
|
||||
@ -10,6 +12,8 @@ import android.view.MenuItem;
|
||||
|
||||
import androidx.appcompat.app.ActionBar;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
import androidx.preference.Preference;
|
||||
import androidx.preference.PreferenceFragmentCompat;
|
||||
import androidx.preference.PreferenceManager;
|
||||
@ -49,14 +53,22 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
|
||||
SwitchPreference shared;
|
||||
shared = findPreference("use_shared_storage");
|
||||
if(shared.isChecked())
|
||||
directory.setVisible(true);
|
||||
if(shared.isChecked()) {
|
||||
if(checkAndRequestPermissions())
|
||||
directory.setVisible(true);
|
||||
else
|
||||
shared.setChecked(false);
|
||||
}
|
||||
else
|
||||
directory.setVisible(false);
|
||||
|
||||
shared.setOnPreferenceClickListener(preference -> {
|
||||
if(shared.isChecked())
|
||||
directory.setVisible(true);
|
||||
if(shared.isChecked()) {
|
||||
if(checkAndRequestPermissions())
|
||||
directory.setVisible(true);
|
||||
else
|
||||
shared.setChecked(false);
|
||||
}
|
||||
else
|
||||
directory.setVisible(false);
|
||||
return false;
|
||||
@ -71,6 +83,35 @@ public class SettingsActivity extends AppCompatActivity {
|
||||
});
|
||||
}
|
||||
|
||||
private boolean checkAndRequestPermissions() {
|
||||
|
||||
if (ContextCompat.checkSelfPermission(
|
||||
getActivity(), Manifest.permission.READ_EXTERNAL_STORAGE) ==
|
||||
PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d("READ_EXTERNAL_STORAGE", "already granted");
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
ActivityCompat.requestPermissions(getActivity(), new String[] {android.Manifest.permission.READ_EXTERNAL_STORAGE}, MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode,
|
||||
String permissions[],
|
||||
int[] grantResults) {
|
||||
switch (requestCode) {
|
||||
case MainActivity.REQUEST_ID_READ_EXTERNAL_STORAGE:
|
||||
if (grantResults.length > 0 &&
|
||||
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d("READ_EXTERNAL_STORAGE", "granted");
|
||||
} else {
|
||||
Log.d("READ_EXTERNAL_STORAGE", "No granted");
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user