如何删除此弹出窗口中的 "Never ask again" 文本?
How to remove "Never ask again" text in this popup?
如何在没有“不再询问”文本的情况下请求权限弹出窗口?
此处java代码,
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);
}
How can I request the permission popup without “Never ask again” text?
不,您无法从权限对话框中删除“不再询问”
如果用户选择 不再询问
,请尝试此 hack
像这样请求权限
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);
}
}
});
在 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);
}
}
}
不如创建这样的方法
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
}
}
不,你无法从该对话框中删除不再询问
如果用户再次拒绝,应用程序应该在绝对需要该权限的情况下关闭,或者保留 运行 有限的功能。
如果用户重新考虑(并选择重试),则再次请求权限。这次提示如下所示:
如何在没有“不再询问”文本的情况下请求权限弹出窗口?
此处java代码,
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);
}
How can I request the permission popup without “Never ask again” text?
不,您无法从权限对话框中删除“不再询问”
如果用户选择 不再询问
,请尝试此 hack像这样请求权限
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);
}
}
});
在 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);
}
}
}
不如创建这样的方法
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
}
}
不,你无法从该对话框中删除不再询问
如果用户再次拒绝,应用程序应该在绝对需要该权限的情况下关闭,或者保留 运行 有限的功能。
如果用户重新考虑(并选择重试),则再次请求权限。这次提示如下所示: