Androidパーミション別-何してんの?#4 STATUS_BAR,DISPLAY編


Pocket

前回に続いてAndroidパーミッションが何に使用されているかの確認です。

今回は、STATUS_BARとDISPLAYグループです。

#1:LOCATION編
#2:STORAGE,CAMERA編
#3:AFFECTS_BATTERY編
前回同様にprotectionLevelがnormal,dangerousのみ説明します。

 

STATUS_BAR ステータスバー

端末のステータスバー設定を変更します。

【ユーザー向けパーミッションの説明】

パーミッション Level 説明 使われ方
EXPAND_STATUS_BAR normal ステータスバーの展開/折りたたみをアプリに許可します。 通常は画面上部から下にスワイプすると表示されるステータスバーを、アプリから強制的に開く時に使用します。ランチャ系アプリで使われる場合があります。

 

【関連メソッド】

パーミッションによって使用制限されるメソッド一覧です。

・EXPAND_STATUS_BAR

対象クラス 対象メソッド 説明
StatusBarManager expandNotificationPanel() 通知パネルを開く

ステータスバーの操作はStatusBarManagerを介して行いますが、StatusBarManagerが@hideなので、リフレクションとかしないと使用できないようになってます。

 

DISPLAY 他のアプリのUI

他のアプリのUIに影響を及ぼします。

【ユーザー向けパーミッションの説明】

パーミッション Level 説明 使われ方
SYSTEM_ALERT_WINDOWS dangerous 他のアプリやユーザーインターフェースの一部の上に重ねて描画することをアプリに許可します。これにより、他のアプリのインターフェースを使用する際に邪魔になったり、他のアプリに表示されていると思われるものが変更されたりする場合があります。 ランチャ系アプリでよく使用されるパーミッションで、他のアプリ画面の上にオーバーレイ表示する様な使われ方をします。また、このパーミッションを使用するアプリがインストールされている端末では、apkファイルからのインストールができなくなるようです。

 

【関連メソッド】

パーミッションによって使用制限されるメソッド一覧です。

・SYSTEM_ALERT_WINDOWS

Androidの画面は複数レイヤーで構成されています。
一部抜粋するとこんな感じです。
<優先度>
 高
 ↑ システムオーバーレイ
 | システムアラート(バッテリー不足の警告など)
 | トースト
 | 着信画面
 ↓ 通常アプリ
 低

通常アプリ以上のレイヤーに任意のViewを表示する場合に、このパーミッションが必要になります。

対象クラス 対象メソッド 説明
WindowManager.LayoutParams * WindowManager.addView(…)でViewを追加するときのパラメーターで、表示レイヤーを指定できます。

 
 

あとがき

今回はSTATUS_BAR、DISPLAYグループです。

SYSTEM_ALERT_WINDOWSは悪用されると結構やばい気がしますね。
画面上では「キャンセル」と表示されているボタンを押すと変なアプリがインストールされるとか。
一応OS側でインストールに関してはガードがかかっているようですが、課金ページとか変なWebページに飛ばすとか・・・どうなんだろう。

ではでは~。
 
 

Leave a Comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>