Cara Membuat Permission Full Akses Folder Android 11 Programmatically
Programmatically cara buat full akses permission bisa untuk membaca dan menulis folder android/data dan android/obb. script atau codingan pada android studio yang saya gunakan kurang lebih seperti ini pada android 11 dan support dengan android 11 kebawah pada gfx g syntax pubg mobile projek yang saya kerjakan
gunakan manifest seperti ini
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
dan
Letakkan di bagian <application .. disini ... </application
<application ..
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="com.gsyntax.albasyir.Helper"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
</application
dan letakkan script ini di manifest bagian <application ...
android:requestLegacyExternalStorage="true"
fungsi untuk set permission full akses data android 11 dan support versi bawahnya
public void requestPermission() {
if (SDK_INT >= Build.VERSION_CODES.R) {
try {
Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
intent.addCategory("android.intent.category.DEFAULT");
intent.setData(Uri.parse(String.format("package:%s", new Object[]{getApplicationContext().getPackageName()})));
startActivityForResult(intent, 2296);
} catch (Exception e) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
startActivityForResult(intent, 2296);
}
} else {
//below android 11
if (hasReadPermissions() && hasWritePermissions()) {
return;
}
ActivityCompat.requestPermissions(this,
new String[]{
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
}, REQUEST_WRITE_STORAGE); // your request code
}
}
private boolean hasReadPermissions() {
return (ContextCompat.checkSelfPermission(getBaseContext(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
}
private boolean hasWritePermissions() {
return (ContextCompat.checkSelfPermission(getBaseContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED);
}
selesai, sekarang coba pangggil requestPermission();
sekarang buat folder & file pada res/xml/filepaths.xml
isikan file filepaths.xml berikut
<?xml version="1.0" encoding="utf-8"?>
<paths>
<files-path
name="share"
path="external_files"/>
</paths>
Semoga bermanfaat untuk anda yang sedang mencari programmatically untuk android 11 karena Android 11 mempunyai permission terbaru agar data pada privacy lebih baik dari android sebelumnya