LoginSignup
14
10

More than 5 years have passed since last update.

Androidアプリ開発「外部ストレージアクセスのパーミッション」

Last updated at Posted at 2017-02-10

API Level 23(6.0:Marshmallow)から、マニフェストに外部ストレージアクセスのパーミッションを記述した”だけ”では、有効にならなくなりました。

マニフェストでの記述例

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

ちなみに、「WRITE_EXTERNAL_STORAGE」は、「READ_EXTERNAL_STORAGE」を内包しています。

Javaのコード中にて、以下のように、外部ストレージアクセスのパーミッションの”許可(リクエスト)”の記述もしないと、有効になりません。

Activityでの記述例

public class MainActivity extends Activity {

    private static final int REQUEST_EXTERNAL_STORAGE = 1;
    private static String[] PERMISSIONS_STORAGE = {
            Manifest.permission.READ_EXTERNAL_STORAGE,
            Manifest.permission.WRITE_EXTERNAL_STORAGE
    };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        int permission = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (permission != PackageManager.PERMISSION_GRANTED) {
            // We don't have permission so prompt the user
            ActivityCompat.requestPermissions(
                    this,
                    PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE
            );
        }

        // 以下略
    }
// 以下略

以上です。

14
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
10