Lompat ke konten Lompat ke sidebar Lompat ke footer

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