Сайт проекта https://github.com/Karumi/Dexter
, если вы не в сети https://mvnrepository.com/artifact/com.karumi/dexter для файла jar / aar
Включите библиотеку в свою сборку .gradle в приложении
dependencies{
implementation 'com.karumi:dexter:6.1.0'
}
или
для автономного режима в android studio. Щелкните правой кнопкой мыши папку приложения проекта, выберите «New» в подменю, нажмите «Module» и прокрутите слайд до Внизу выберите «Импорт пакета JAR / AAR» и нажмите «Далее».
Наконец, просмотрите и выберите загруженный файл JAR / AAR, затем нажмите кнопку «Fini sh».
Подождите, пока не закончится sh build.
после этого введите приведенный ниже код, помните, что имя должно быть таким же.
dependencies{
implementation project(':dexter-6.1.0')
}
в MainActivity. java type
import android.Manifest;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;
import com.karumi.dexter.Dexter;
import com.karumi.dexter.MultiplePermissionsReport;
import com.karumi.dexter.PermissionToken;
import com.karumi.dexter.listener.PermissionRequest;
import
com.karumi.dexter.listener.multi.
MultiplePermissionsListener;
import java.io.File;
import java.util.List;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
askStorage();
}
public void createFolder(){
File tSunLogDirectory = new
File(Environment.getExternalStorageDirectory()+
File.separator+"data");
if(!tSunLogDirectory.exists()){
tSunLogDirectory.mkdir();
Toast.makeText(MainActivity.this, "Folder created",
Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "Folder already exist
", Toast.LENGTH_LONG).show();
}
}
public void askStorage(){
Dexter.withActivity(this)
.withPermissions(
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
.withListener(new MultiplePermissionsListener() {
@Override
public void
onPermissionsChecked(MultiplePermissionsReport
report) {
// check if all permissions are granted
if (report.areAllPermissionsGranted()) {
// do you work now
createFolder();
}
// check for permanent denial of any
permission
if
(report.isAnyPermissionPermanentlyDenied()) {
// permission is denied
}
}
@Override
public void
onPermissionRationaleShouldBeShown(
List<PermissionRequest> list, PermissionToken
permissionToken) {
permissionToken.continuePermissionRequest();
}
})
.check();
}
}
проверить проект сайт для одного и нескольких разрешений.
, а также не забудьте включить
<uses-permission android:name="android.permission.
WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.
READ_EXTERNAL_STORAGE" />