2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

KIT AppDeveloperAdvent Calendar 2015

Day 16

忙しい人のためのandroidMからのパーミッション

Last updated at Posted at 2015-12-15

前書き

Hello こんにちは。
忙しい人のためにandroidMのパーミッション回りを書きます。
まとめからスタートします。より詳しく知りたかったらそれより↓を読んでください。

まとめ

今までのパーミッションではユーザーから見た時いつどこで「その権限」が使われてるのかわからず不安だった。(それゆえに悪用もできた)
Mからはそれはよくないよね、という流れになった。(OSとしては当たり前)
デベロッパーは権限を使う前(度)にユーザーに「このパーミッション使っていいですか?」「このパーミッションは許可されていますか」と聞くことが義務となった。
ユーザーはより透明化されたパーミッションをアプリ一覧から確認して機能毎に許可不許可できるようになった。

今までのパーミッション

AndroidManifest.xmlにを書き込むことでアプリで使える権限を増やしていた。つまりユーザー目線に立ったとき
アプリを入れたい → このアプリはインターネット権限を使うのか → やめよう
といったフローでアプリの取捨選択を行っていた。
デベロッパーは余計な権限を極力使わないことでユーザーに安心感を与えていた。
しかし、これは逆もしかりで、ユーザーがよくわからないことをいいことに悪用することもできた、ということです。よくないですよね。

では今後(M以降)は?

デベロッパー

デベロッパーは二つの動作をすることができます。

- 権限の要求

「のパーミッションが欲しいけどいい?」といったダイアログを出す。

public int requestPermissions(String[] permissions, int requestCode);

permissionが配列になっているのはpermissionをまとめてリクエストできるからです。(※ただし、一つのパーミッションにつき一つのダイアログが出てきます。ダイアログは現在customDialogは使えません。ちょっと不便。)
requestCodeは任意です。制御に使え、という意図でしょう。
戻り値に関しては

  • 許可 (PERMISSION_GRANTED)
  • 不許可(PERMISSION_DENIED)
    です。

- 権限の確認

「上のアプリ一覧で設定されたパーミッションには許可されてる?」といった問い合わせ。

public int checkSelfPermission(String permission);

戻り値に関しては上と一緒です。

リザルト

requestPermissionメソッドを呼び出すと、が帰ってきます。オーバーライドしてそこで結果を受け取ります。

ユーザー

ユーザーはアプリ一覧から権限を確認することができます。
例えば、アプリ全体からを許可しているアプリは何か。また、このアプリは何のパーミッションを許可しているか、といった具合に。

まとめ2

まだAndroidMのシェア率は0.6%です
今後増えていくだろうし、私たちも準備していきましょう。

2
2
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
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?