[Android]6.0からPermissionは個別設定

http://motida-japan.hatenablog.com/entry/2015/06/16/234035
https://feel-log.net/android/marshmallow-permissions-runtime-request/

Mからは「Permissionが個別設定できる」とIOで発表されました。これ、実際のところインパクトでかいと思うんですよね。

ただ全てではないです。と。

  • 例えば、SIM情報を取得する単純な試作アプリを作る場合
    アプリを作る側で、パーミッションを許可するように記載する
     具体的には、AndroidManifest.xml に以下を追加する
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

これで、実行するだけでは、以下のエラーがでます。

java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has android.permission.READ_PHONE_STATE.

アプリ側でパーミッション許可しているのに、、、と思ったら、上記のサイトに記載されているように、端末側での操作も必要です。

Settings -> App -> 該当アプリ -> Permissions -> 電話
の項目をオンにする(許可する)

ちゃんとしたアプリを作る場合は、
起動時にアクセス許可しますか的なダイアログを表示してあげる必要があると思いますが、
試作アプリとしては、上記を気をつければいいかなと思いました。

コメント

タイトルとURLをコピーしました