2016-02-29 136 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