2017-01-25 5 views
0

ここまでは私がこれまで行ってきたことですが、問題は、コードはパーミッション、エラー、強制終了を要求しないということです。私は現在アンドロイド6.0のデバイスでテストしています。私は設定で権限を取り消しましたが、それでも依頼していません。あなたが前にダイアログを持っていた場合、それはあなたが再びpermmission要求することは決してありません「再び尋ねることはありません」をクリックします - 私はandroid 6.0のストレージ権限をリクエストするにはどうすればよいですか?

package com.example.pper; 

import android.Manifest; 
import android.app.Activity; 
import android.content.pm.PackageManager; 
import android.os.Build; 
import android.os.Bundle; 
import android.support.v4.app.ActivityCompat; 
import android.util.Log; 

public class MainActivity extends Activity { 
private String TAG; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    isStoragePermissionGranted(); 
} 

public boolean isStoragePermissionGranted() { 
    if (Build.VERSION.SDK_INT >= 23) { 
     if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 
      Log.v(TAG, "Permission is granted"); 
      return true; 
     } else { 

      Log.v(TAG, "Permission is revoked"); 
      ActivityCompat 
        .requestPermissions(
          this, 
          new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, 
          1); 
      return false; 
     } 
    } else { // permission is automatically granted on sdk<23 upon 
       // installation 
     Log.v(TAG, "Permission is granted"); 
     return true; 
    } 
} 

@Override 
public void onRequestPermissionsResult(int requestCode, 
     String[] permissions, int[] grantResults) { 
    super.onRequestPermissionsResult(requestCode, permissions, grantResults); 
    if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 
     Log.v(TAG, "Permission: " + permissions[0] + "was " 
       + grantResults[0]); 
     // resume tasks needing this permission 
    } 
} 

}

答えて

0

チェックshouldShowRequestPermissionRationale() below-完全なコードを掲載しています。

説明が必要な状況を見つけるのに役立つように、Androidにはユーティリティメソッド、shouldShowRequestPermissionRationale()が用意されています。このメソッドは、以前にこのアクセス権が要求されていて、ユーザーが要求を拒否した場合にtrueを返します。

注:ユーザが以前に許可要求を拒否し、 が許可要求システム ダイアログで再度尋ねないオプションを選択した場合、このメソッドはfalseを返します。 デバイスポリシーでアプリがそのアクセス権を持つことが禁止されている場合も、このメソッドはfalseを返します。

+0

私は、アプリをアンインストールし、 –

+0

それを再インストールしますが、デバッグ/問題がどこにあるか確認するためにログインしてみたのですか? –

0

マニフェストファイルはこのようなものが含まれていることを確認してください:

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    android:maxSdkVersion="25" /> 
+0

はい既にあります –

+0

奇妙なことに、あなたのコードがデバイス(Android 7.1.1)で正常に動作しているようです。 –

+0

私はsamsungを持っています、多分彼らは図書館をカスタマイズしました –

関連する問題