In onCreate Method
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
} else {
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
PERMISSION_REQUEST_CODE);
}
In onRequestPermissionsResult
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[],int[]grantResults) {
switch (requestCode) {
case PERMISSION_REQUEST_CODE: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
String path = Environment.getExternalStorageState();
} else {
}
return;
}
}
I have tried hard but all ends up with crash application. Permission is not granted to application. Why ? Am I doing any thing wrong? Your help would be appreciated.
I'm using this as my code, got from stackoverflow, but forgot who answer it
public boolean hasPermission(Context context, String... permissions){
for (String permission : permissions) {
if (ContextCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
int PERMISSION_ALL = 1;
String[] PERMISSIONS = {
Manifest.permission.INTERNET,
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.ACCESS_NETWORK_STATE,
Manifest.permission.CHANGE_NETWORK_STATE,
Manifest.permission.WRITE_SETTINGS,
Manifest.permission.CAMERA,
Manifest.permission.RECEIVE_SMS,
Manifest.permission.SEND_SMS,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_WIFI_STATE,
Manifest.permission.CHANGE_WIFI_STATE,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.READ_CONTACTS};
public void checkAllPermission(){
if (!hasPermission(getActivity(), PERMISSIONS)){
ActivityCompat.requestPermissions(getActivity(), PERMISSIONS, PERMISSION_ALL);
}
}
}
try it (modify as your need)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.