READ_EXTERNAL_STORAGE for android Q
This commit is contained in:
parent
96540f4a50
commit
6a1ed20e07
@ -1,8 +1,10 @@
|
|||||||
package com.localtransfer;
|
package com.localtransfer;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -10,6 +12,8 @@ import android.view.MenuItem;
|
|||||||
|
|
||||||
import androidx.appcompat.app.ActionBar;
|
import androidx.appcompat.app.ActionBar;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.core.app.ActivityCompat;
|
||||||
|
import androidx.core.content.ContextCompat;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
import androidx.preference.PreferenceFragmentCompat;
|
||||||
import androidx.preference.PreferenceManager;
|
import androidx.preference.PreferenceManager;
|
||||||
@ -49,14 +53,22 @@ public class SettingsActivity extends AppCompatActivity {
|
|||||||
|
|
||||||
SwitchPreference shared;
|
SwitchPreference shared;
|
||||||
shared = findPreference("use_shared_storage");
|
shared = findPreference("use_shared_storage");
|
||||||
if(shared.isChecked())
|
if(shared.isChecked()) {
|
||||||
|
if(checkAndRequestPermissions())
|
||||||
directory.setVisible(true);
|
directory.setVisible(true);
|
||||||
|
else
|
||||||
|
shared.setChecked(false);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
directory.setVisible(false);
|
directory.setVisible(false);
|
||||||
|
|
||||||
shared.setOnPreferenceClickListener(preference -> {
|
shared.setOnPreferenceClickListener(preference -> {
|
||||||
if(shared.isChecked())
|
if(shared.isChecked()) {
|
||||||
|
if(checkAndRequestPermissions())
|
||||||
directory.setVisible(true);
|
directory.setVisible(true);
|
||||||
|
else
|
||||||
|
shared.setChecked(false);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
directory.setVisible(false);
|
directory.setVisible(false);
|
||||||
return 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
|
@Override
|
||||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user