Android M 错误中的读取外部存储权限
Read External Storage permission in Android M Error
在onCreate方法中
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);
}
在 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;
}
}
我已经很努力了,但都以应用程序崩溃告终。未授予应用程序权限。为什么 ?我做错了什么吗?将不胜感激。
我正在使用这个作为我的代码,来自 Whosebug,但忘记了谁回答它
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);
}
}
}
尝试一下(根据需要修改)
在onCreate方法中
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);
}
在 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;
}
}
我已经很努力了,但都以应用程序崩溃告终。未授予应用程序权限。为什么 ?我做错了什么吗?将不胜感激。
我正在使用这个作为我的代码,来自 Whosebug,但忘记了谁回答它
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);
}
}
}
尝试一下(根据需要修改)