2016-09-27 113 views
2

我發現很多類似的主題具有相同的威脅,但我仍然找不到解決方案。我編寫了這個代碼來授予應用程序的寫入權限,但沒有顯示對話框。我在監視器中獲得了無寫入權限消息。RequestPermissions不顯示對話框

if(ContextCompat.checkSelfPermission(getContext(),Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED) { 
Log.i("permissions", "No writing permission"); 

ActivityCompat.requestPermissions(getActivity(), new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 225); 

我加在AndroidManifest許可酒坊

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

改變了目標sdk targetSdkVersion 23,而我使用android 6.0.1

編輯: 我也追平這個代碼,但它仍然沒有工作

requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 225); 
+0

您使用的是什麼版本的設備? –

+0

我剛剛複製了你的代碼,它正常工作。 –

回答

1

RequestPermissions對話框將不會僅示於下2案件上設備> = 6.0:

1)要麼你已經獲准的任何危險的權限的你是類別內要求。

2)您已經點擊了從不再詢問對話框之前顯示的複選框。

1

我有一個類似的情況。不要試圖用Fragment中的ActivityCompat來調用它。而是使用Fragment中給定的requestPermissions方法,例如

requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 225); 
+0

我也用過它,還沒有工作。 – user567