FragmentCompat重新启动应用程序

时间:2016-02-29 22:32:02

标签: android

int apiLevel = Build.VERSION.SDK_INT;
int contactsDisabled = getActivity().checkCallingPermission(Manifest.permission.READ_CONTACTS);

if (apiLevel >= 23 && contactsDisabled != PackageManager.PERMISSION_GRANTED) {
    FragmentCompat.requestPermissions(SaleFragment.this, new String[]{Manifest.permission.READ_CONTACTS}, PERMISSION_REQUEST_CODE);
}

当我的请求权限在我的片段中的屏幕上弹出时,当我按下允许应用程序重新启动时。如果我按下拒绝,请求权限会一直弹回,只有按下允许才会消失。任何人都可以建议修复此问题吗?

1 个答案:

答案 0 :(得分:-1)

您似乎正在使用AppCompat库但仍使用直接活动的权限检查调用。我没有遇到您遇到的具体行为,但这是我为我的应用实施运行时权限的方式,它使用ContextCompat.checkSelfPermission

正常工作
int contactsDisabled = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_CONTACTS);

if (apiLevel >= 23 && contactsDisabled != PackageManager.PERMISSION_GRANTED) {
    FragmentCompat.requestPermissions(SaleFragment.this, new String[]{Manifest.permission.READ_CONTACTS}, PERMISSION_REQUEST_CODE);
}