我正在尝试为我的Android应用程序请求运行时权限。下面是我的代码:
private static final int PERMISSION_REQUEST_CODE = 1;
String installPermission = Manifest.permission.INSTALL_PACKAGES;
String writePermission = Manifest.permission.WRITE_EXTERNAL_STORAGE;
@Click(R.id.buttonVersionUpgrade)
void buttonVersionUpgradeClicked(View v) {
if (!checkPermission(installPermission)) {
requestPermission(installPermission);
}
if (!checkPermission(writePermission)) {
requestPermission(writePermission);
}
}
private boolean checkPermission(String permission){
if (Build.VERSION.SDK_INT >= 23) {
int result = ContextCompat.checkSelfPermission(getApplicationContext(), permission);
if (result == PackageManager.PERMISSION_GRANTED){
return true;
} else {
return false;
}
} else {
return true;
}
}
private void requestPermission(String permission){
if (ActivityCompat.shouldShowRequestPermissionRationale(this, permission)){
Toast.makeText(getApplicationContext(), "Permission required for features to work.",Toast.LENGTH_LONG).show();
}
ActivityCompat.requestPermissions(this, new String[]{permission},PERMISSION_REQUEST_CODE);
}
@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) {
Toast.makeText(getApplicationContext(), "Permission Granted.",
Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(),"Permission Denied.",
Toast.LENGTH_LONG).show();
}
break;
}
}
在我的AndroidManifest.xml中:
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
但是,上面的代码一直显示权限被拒绝,而没有提示用户需要权限。有什么想法吗?
谢谢!
发布于 2019-05-12 19:20:38
我在清单中有一个错误:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE " />
在"WRITE_EXTERNAL_STORAGE".之后我有了空间我把它删除了,现在一切都好了。
https://stackoverflow.com/questions/50789303
复制相似问题