如何实现shouldShowRequestPermissionRationale?

时间:2018-11-18 14:47:35

标签: android

如何实现shouldShowRequestPermissionRationale()? 到目前为止,我在代码中将其保留为空白,并且可以正常运行,但是如何实际使用此方法来说明我的基本原理?我了解它应该以某种方式包含我编写的弹出对话框。或者,实际上我可以在那里做任何我想要的事情,而不是弹出对话框?例如,改为显示TextView?

This is my code:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.READ_CONTACTS)
        != PackageManager.PERMISSION_GRANTED) {

    // Permission is not granted
    // Should we show an explanation?
    if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
            Manifest.permission.READ_CONTACTS)) {
        // Show an explanation to the user *asynchronously* -- don't block
        // this thread waiting for the user's response! After the user
        // sees the explanation, try again to request the permission.
    } else {
        // No explanation needed; request the permission
        ActivityCompat.requestPermissions(thisActivity,
                new String[]{Manifest.permission.READ_CONTACTS},
                MY_PERMISSIONS_REQUEST_READ_CONTACTS);

        // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
        // app-defined int constant. The callback method gets the
        // result of the request.
    }
} else {
    // Permission has already been granted
}

如果用户先前单击了“拒绝”,如何显示我的自定义基本原理?如何第二次显示自己的对话框?

1 个答案:

答案 0 :(得分:0)

shouldShowRequestPermissionRationale()用作提示,提示用户可能需要有关您为什么要请求特定权限的更多信息。通常,如果用户至少一次拒绝了该权限并且他们没有单击“不再询问”,则此方法将返回true。您可以在用户界面中做任何您想做的事,大多数都会显示一个弹出窗口,但这取决于您。 shouldShowRequestPermissionRationale()不能代替requestPermissions(),在您显示基本原理并被用户阅读后,您仍然需要请求权限。