2017年3月1日水曜日

「SYSTEM_ALERT_WINDOW」パーミッションについて

こんばんは。

以前の記事、「パーミッションについて」で、パーミッション、権限許可の取り方を書きました。
それに関連して、今日は、 「SYSTEM_ALERT_WINDOW」パーミッションについて書きます。

Androidの画面は、複数のレイヤーが重なっています。
1番下がアプリ、2番目が電話、・・・、1番上がシステムエラーという具合に、重なっています。
通常のアプリの上に、何かを表示したい場合は、上のレイヤーに表示するようにします。

システムアラートのレイヤーに表示させたい場合、「SYSTEM_ALERT_WINDOW」パーミッションを設定する必要があります。
しかし、この「SYSTEM_ALERT_WINDOW」パーミッションは、「パーミッションについて」とは違い、実行時に確認する必要はありません
 マニフェストファイルに以下を設定しておけば、Google Playからインストールされたときに自動で設定されるようです。



本当に、自動で設定されるのか心配でしたが、ダビマスメモを公開して設定されることを確認しました。


ただし、デバッグなどで端末にインストールしたときは、例外が発生してしまいます。
「設定」の「アプリ」の歯車の「他のアプリの上に表示」で、対象のアプリを「可」にしてやれば、例外は発生しなくなります。

これを毎回やるのはさすがに面倒なので、権限が設定されていない場合は設定画面を表示するようにしてやりました。



このようにしておけば、システムアラートレイヤーに表示するときに、以下の設定画面が表示されます。



許可してやれば、デバッグができます。

0 件のコメント:

コメントを投稿