LoginSignup
1
1

More than 5 years have passed since last update.

Android N で permission の設定をする

Posted at

Android M(SDK 23) から permissions の扱いが変わっていますが, N(SDK 24)では permissions の設定がまたさらに変わっているようです.

sdcard からファイルを読みたい.

漢だったら, アプリ開発時には /sdcard からファイルを読み書きしたいですね!

しかし NDK で fopen, ifstream などで /sdcard にアクセスしようとするとファイルが見つからないというエラーが出るようになります(Java レイヤーでもそうですが).

そのため, AndroidManifest.xmlREAD_EXTERNAL_STRAGE, WRITE_EXTERNAL_STRAGE の permission を設定する必要があります.

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

を見ると, uses-permission ではなく uses-permission-sdk-m が推奨のようです.

Android N

Android M では上記の設定で /sdcard からのファイルが読み書きができるようですが, Android N ではこれだけでは不十分で, さらに実行時にユーザに permission の許可を求める必要があります.

でも NDK で C++ でアプリ作っている時に, 上記サンプルのように Java で permission を求めるコード書くのはめんどくさすぎですね...

一旦 apk をインストール後, Android 実機で Settings -> Apps -> YOUR_APP -> Permission で設定できました. これで /sdcard を読み書きできるようになります.
(apk 上書きでアップデートの場合は permission は引き継がれるっぽい)

TODO

  • 優秀な Android N 若人を, 合法的なあらゆるどんな手段を使ってでも探し出し, 優秀な Android N 若人が自ら Android 開発の高みを極めてくれるスキームを確立したい
1
1
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
1
1