- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我正在编写一个读取用户电话号码的安卓应用程序。因为该应用程序是为 SDK 23+(目标 sdk 27)开发的,所以我必须请求读取短信权限。如果用户第一次拒绝该权限,则应出现一个对话框,解释电话号码的使用。然后用户可以选择再次请求权限或手动输入电话号码。如果用户勾选“不再询问”,则会出现一个对话框,指示用户通过设置允许权限。
为了检查用户是否勾选了不再询问,我使用了 shouldShowRequestPermissionRationale 方法。但是该方法总是返回 false,即使我从来没有打勾也不会再问。
以下是相关代码:
public class SettingsSettingsFragment extends Fragment implements ActivityCompat.OnRequestPermissionsResultCallback {
public void readNumber() {
if (person.getPhoneNumber() == null || person.getPhoneNumber().equalsIgnoreCase("")) {
if (checkSelfPermission(getActivity(), READ_SMS) != PackageManager.PERMISSION_GRANTED)
requestPermission();
else {
//read phoneNumber
}
}
//request permission send sms
private void requestPermission() {
requestPermissions(new String[]{Manifest.permission.READ_SMS}, PERMISSION_REQUEST_SEND_SMS);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == PERMISSION_REQUEST_SEND_SMS)
if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
// user rejected the permission
boolean showRationale = shouldShowRequestPermissionRationale(Manifest.permission.SEND_SMS);
if (!showRationale) {
// user also CHECKED "never ask again" - show dialog
//show dialog: please allow in settings
} else if (counter < 2) {
// explain the permission, and give the user the possibility to ask once more
counter++;
}
}
最佳答案
根据 shouldShowRequestPermissionRationale() 的 android 开发者文档:
method returns true if the app has requested this permission previously and the user denied the request. If the user turned down the permission request in the past and chose the Don't ask again option in the permission request system dialog, this method returns false
关于android - shouldShowRequestPermissionRationale 总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50541186/
我想在运行时请求权限。我查看了官方的 android 开发者网站,它说如果权限先前被拒绝,shouldShowRequestPermissionRationale 返回 true,如果权限被拒绝,则返
我认为有一个错误 shouldShowRequestPermissionRationale 代码是... @Override protected void onResume() { super
我正在检查并获得 API 级别 23 及更高级别用户的许可。所以这对我来说是一件令人困惑的事情,android.com 说: shouldShowRequestPermissionRationale(
我向我的应用添加了位置权限。现在安装应用程序时,它会请求用户许可。这是我的代码: if (fragment.shouldShowRequestPermissionRationale(Manifest.
shouldShowRequestPermissionRationale方法返回 false第一次。 我在 fragment 中有以下代码: if (shouldShowRequestPermissi
如何在调用权限之前使用shouldShowRequestPermissionRationale并在Activity中使用。 因为在 ActivityCompat.requestPermissions
目前我正在编写一个读取用户电话号码的安卓应用程序。因为该应用程序是为 SDK 23+(目标 sdk 27)开发的,所以我必须请求读取短信权限。如果用户第一次拒绝该权限,则应出现一个对话框,解释电话
我正在构建一个需要用户位置的应用程序。我正在关注来自 here 的 Android 培训文档其中说: shouldShowRequestPermissionRationale return the b
下面是我的代码,我调用此代码以获得运行时权限。在这种情况下,“shouldshowrequestpermissionrationale 总是返回 false”。我找不到解决方案为什么会这样。因此,未显
我正在阅读有关 Android M 中新权限模型的官方文档。它讨论了 shouldShowRequestPermissionRationale() 函数,如果应用程序请求此函数,该函数将返回 true
我是一名优秀的程序员,十分优秀!