2016-02-29 108 views
1
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); 
} 

当我的请求许可弹出屏幕上的我的片段,当我按下允许应用程序重新启动。如果我按否认请求许可不断弹出备份,并且只有按下允许时才会消失。任何人都可以为此提出解决方案吗?FragmentCompat重新启动应用程序

回答

-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); 
} 
+0

我使用的Android版本:支持-V13库23+的FragmentCompat库在我的片段类中工作。我已经尝试在AppCompat中使用v4-support库..我尝试了你使用ContextCompat.checkSelfPermission进行解释,当联系实际上被禁用时返回零。 – user2709241