これバグじゃないんだって
targetSdkVersion
を 23 以上にしてますか?
Android 6.0 以降で Dangerous
なパーミッションはRuntimeに権限要求する必要がでてきた。Androidユーザーとして嬉しい変更だ。
しかし開発者としては面倒だから targetSdkVersion
を上げないでおいているアプリは多いだろう。
たとえば android.permission.CAMERA
権限は Dangerous
なパーミッションとして分類されている。なのでカメラアプリを作るには、Runtimeに権限要求をする必要があるぞい。
あ、そうそうAndroid 6.0 以降で Intent
を使ってカメラアプリを起動するときにも場合によっては、 android.permission.CAMERA
の権限が必要になるぞい。
ということでバグ報告されております
これな https://code.google.com/p/android/issues/detail?id=188073
しかし、Googleの方は「え?バグじゃないよ」と回答。
- この挙動はAndroidManifest.xmlにCAMERAの権限がある ときだけ起こる
- ユーザーが設定画面でカメラ権限を無効化できるようにするため
だそう。なるほどね。なるほど……。
ライブラリプロジェクトに使っていないCAMERA権限がある場合は要注意!
実装方法
このように、ユーザーの利便性を考えて権限のON/OFFができるようにしたいって場合は、以下を使おう。
<uses-permission-sdk-23>
https://developer.android.com/guide/topics/manifest/uses-permission-sdk-23-element.html
これを使えば大丈夫ということだ!
ちなみに <uses-permission>
には android:maxSdkVersion
属性があるから minSdkVersion
もあるのかな〜と思ったらなかった。
https://developer.android.com/guide/topics/manifest/uses-permission-element.html