gpt4 book ai didi

android - Marshmallow 更新设备中的运行时权限弹出单击问题

转载 作者:行者123 更新时间:2023-11-29 19:43:53 26 4
gpt4 key购买 nike

我为 Marshmallow 设备集成了 READ PHONE STATE 的 Android Runtime Permission。此实现工作正常,弹出窗口显示在我的应用程序中,带有允许/拒绝选项。

我可以点击普通棉花糖设备的允许/拒绝按钮。但在更新的 android 设备(从 Lollipop 到 Marshmallow)的情况下,允许按钮单击在初始时间不起作用。此问题已在 Nexus 5 和 Nexus 7 中测试和重现。我们是否需要为更新的操作系统创建额外的内容?还是棉花糖问题?

完整代码请查看:

    private static final int MY_PERMISSIONS_REQUEST_READ_PHONE_STATE = 101;

if (Build.VERSION.SDK_INT >= 23) {
if(mActivity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) !=PackageManager.PERMISSION_GRANTED) {
if (this.shouldShowRequestPermissionRationale(
Manifest.permission.READ_PHONE_STATE)) {
showExplanationDialog(mActivity, getString(R.string.dialog_message_phone_state));
} else {
this.requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE},
MY_PERMISSIONS_REQUEST_READ_PHONE_STATE);
}
} else {
handleLoginAPI();
}
} else {
handleLoginAPI();
}

private void handleLoginAPI() {
if (super.isNetworkConnectionAvailable(mActivity)) {
// Api Call from here..
}else{
// No Nw Connection.
}

}

@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_PHONE_STATE: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
handleLoginAPI();
} else if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_DENIED) {
if (this.shouldShowRequestPermissionRationale(
Manifest.permission.READ_PHONE_STATE)) {
showExplanationDialog(mActivity, getString(R.string.dialog_message_phone_state));
}
}
return;
}
}
}

最佳答案

在请求权限之前不要调用 shouldShowRequestPermissionRationale()。该调用旨在在用户拒绝请求后进行,通常在 onRequestPermissionsResult() 方法中进行。如果您的应用需要在请求权限之前解释为什么需要权限,则应用的内部逻辑需要做出决定。

关于android - Marshmallow 更新设备中的运行时权限弹出单击问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38183116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com