Ana*_*Ana -6 android permission-denied android-permissions
如何在没有"Never ask again"文本的情况下请求权限弹出窗口?
这里是java Code,
if
(intent.getAction().equals("com.finish.canceltrip.DriverMapActivity")) {
if (!checkAccessFineLocationPermission() || !checkAccessCoarseLocationPermission() || !checkWriteExternalStoragePermission()) {
requestPermission();
} else {
Intent i = new Intent(DriverMapActivity.this, DriverMapActivity.class);
i.putExtra("availability", "Yes");
finish();
startActivity(i);
}
Run Code Online (Sandbox Code Playgroud)
如何在没有"Never ask again"文本的情况下请求权限弹出窗口?
不,您无法 从权限对话框中删除"永不再问"
如果用户选择" 永不再问",请尝试这个黑客
请求这样的许可
btnCurrentLocationSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String permission = android.Manifest.permission.ACCESS_FINE_LOCATION;
if (ActivityCompat.checkSelfPermission(SearchCityClass.this, permission)
!= PackageManager.PERMISSION_GRANTED && ActivityCompat.
checkSelfPermission(SearchCityClass.this, android.Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
Toast.makeText(SearchCityClass.this, "Permission not granted", Toast.LENGTH_SHORT).show();
ActivityCompat.requestPermissions(SearchCityClass.this, new String[]
{permission}, requestCode);
} else {
isPermissionGranted(true);
}
}
});
Run Code Online (Sandbox Code Playgroud)
比onRequestPermissionsResult处理权限结果
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == requestCode) {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
isPermissionGranted(true);
} else {
isPermissionGranted(false);
}
}
}
Run Code Online (Sandbox Code Playgroud)
而不是创建这样的方法
public void isPermissionGranted(boolean permission) {
if (!permission) {
Toast.makeText(this, "Permission not Granted", Toast.LENGTH_SHORT).show();
startActivity(new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS,
Uri.fromParts("package", getPackageName(), null)));
} else {
Toast.makeText(SearchCityClass.this, "true", Toast.LENGTH_SHORT).show();
Toast.makeText(SearchCityClass.this, "Permission granted", Toast.LENGTH_SHORT).show();
// you need to perform all action here if user grants the permission
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |