前回に続いてAndroidパーミッションが何に使用されているかの確認です。
今回は、NETWORKグループです。
#1:LOCATION編
#2:STORAGE,CAMERA編
#3:AFFECTS_BATTERY編
#4:STATUS_BAR,DISPLAY編
前回同様にprotectionLevelがnormal,dangerousのみ説明します。
NETWORK ネットワーク通信
さまざまなネットワーク機能にアクセスします。
【ユーザー向けパーミッションの説明】
パーミッション | Level | 説明 | 使われ方 |
---|---|---|---|
ACCESS_WIMAX_STATE | normal | WiMAXがONになているかどうかを識別し、接続されているWiMAXネットワークの情報を表示することをアプリに許可します。 | 節電系アプリとかで使用されています。WiMAXアクセスのOn/Offをしたりとか。 |
CHANGE_WIFI_STATE | dangerous | Wi-Fiアクセスポイントへの接続/切断、Wi-Fiネットワークのデバイス設定の変更をアプリに許可します。 | これも節電系アプリとかで使用されてたりします。 |
BILLING | normal | このアプリを通じてGooglePlayで商品を購入することをユーザーに許可します。 | アプリ内課金をしているアプリです。 |
DOWNLOAD_WITHOUT_NOTIFICATION | normal | ユーザーへの通知なしでダウンロードマネージャーを使用してファイルをダウンロードすることをアプリに許可します。 | アンドロイドのダウンロードマネージャー経由でファイルをダウンロードする時に通知をしなくするために使用されるようですが・・・あまり見かけないですね。 |
ACCESS_NETWORK_STATE | normal | 存在するネットワークや接続しているネットワークなど、ネットワーク接続に関する情報を表示することをアプリに許可します。 | 外部サーバーと通信を行うアプリには必ず付いてきます。アプリ内容的にはネットワーク接続が不要と思われても広告表示のために使用されていたりします。 |
CHANGE_NETWORK_STATE | normal | ネットワーク接続状態の変更をアプリに許可します。 | データ通信のOn/Offをアプリから行うツール系アプリに使用されていたりします。 |
NFC | dangerous | NFCタグ、カード、リーダーとの通信をアプリに許可します。 | トイカなどのICカードのデータを読み出したりするアプリで使用されます。 |
CHECK_LICENSE | normal | アプリがGooglePlayからライセンスを取得しているかどうかを確認します。 | Android Market Licensingを使ってライセンス管理を行っているアプリで使用されます。有料アプリの無料使用などの不正使用を防止する目的で使用されます。 |
ACCESS_WIFI_STATE | normal | Wi-FiがONになっているかどうか、接続されているWi-Fi端末の名前など、Wi-Fiネットワークに関する情報を表示することをアプリに許可します。 | このパーミッションはWiFiのOn/Off以外にも、WiFiのMACアドレスをユーザ識別IDとして利用していたりもするので、割りと多くのアプリで使われてる印象があります。 |
RECEIVE | normal | アプリのサービスから送信されるクラウド-デバイスメッセージの受信をアプリに許可します。このサービスを利用するとデータ通信が発生します。悪意のあるアプリケーションにより過剰なデータ通信が発生する恐れがあります。 | サーバーからアプリにデータを送信するために使用しますが、C2DM(クラウドtoデバイスメッセージ)は非推奨となったので、もう使用されないはずです。 |
INTERNET | dangerous | ネットワークソケットの作成とカスタムネットワークプロトコルの使用をアプリに許可します。インターネットのデータを送信する手段はブラウザや他のアプリが提供するため、インターネットへのデータ送信のためにこれを許可する必要はありません。 | アプリ内でサーバーとデータをやり取りする場合に使用されます。広告表示のある無料アプリで使用されます。 |
【関連メソッド】
パーミッションによって使用制限されるメソッド一覧です。
・ACCESS_WIMAX_STATE
?
・ACCESS_WIFI_STATE
・CHANGE_WIFI_STATE
対象クラス | 対象メソッド | 説明 |
---|---|---|
WifiManager | * | Wifiにアクセスします。 |
WifiP2pManager | * | Wifi P2Pにアクセスします。 |
・BILLING
アプリ内課金はGooglePlay Billing Libraryを使用して実装します。
・DOWNLOAD_WITHOUT_NOTIFICATION
対象クラス | 対象メソッド | 説明 |
---|---|---|
DownloadManager | setShowRunningNotification(…) | 通知バーにダウンロード状態を表示するか |
setNotificationVisibility(…) | 通知バーにダウンロード状態を表示するか |
・ACCESS_NETWORK_STATE
対象クラス | 対象メソッド | 説明 |
---|---|---|
ConnectivityManager | getNetworkPreference() | 現在の優先ネットワークの種別を取得します。 |
getActiveNetworkInfo() | 現在の有効なネットワークの詳細を取得します。 | |
getNetworkInfo(…) | 特定ネットワーク種別の詳細を取得します。 | |
getAllNetworkInfo() | 全てのネットワークの詳細を取得します。 | |
Proxy | getPreferredHttpHost(…) | クライアントで使用する優先プロキシを取得します。 |
ConnectivityManagerには、他にもネットワーク状態を取得するための@hideなメソッドがいくつか存在します。
・CHANGE_NETWORK_STATE
対象クラス | 対象メソッド | 説明 |
---|---|---|
ConnectivityManager | startUsingNetworkFeature(…) | 呼び出し側は名前が付けられた機能の使用を開始したいと考え、基礎となるネットワークシステムに指示します。 |
stopUsingNetworkFeature(…) | 呼び出し側は名前が付けられた機能の使用を停止したいと考え、基礎となるネットワークシステムに指示します。 | |
requestRouteToHost(…) | デフォルトゲートウェイを指定する?(使ったことないのでよくわからないです) |
・NFC
対象クラス | 対象メソッド | 説明 |
---|---|---|
NfcManager | * | ? |
NfcAdapter | * | ? |
NFCは使ったことがないのでよくわからないです。
・INTERNET
対象クラス | 対象メソッド | 説明 |
---|---|---|
DownloadManager | * | インターネットからダウンロードを行うサービスを使用します。 |
MediaPlayer | * | ネットワーク上のコンテントを再生する場合にINTERNETパーミッションを使用します。 |
AudioStream | * | |
RtpStream | * | |
SipAudioCall | * | SIPベースのインターネット電話を制御します。 |
SipManager | * | Session Initiation Protocol(SIP)を制御します。 |
WebSettings | * | Webアクセス設定を変更します。 |
WebView | * | Webブラウジングを行います。 |
上記以外にもインターネットにアクセスするような場合には基本必要になります。(InetAdressとか)
あとがき
今回はNETWORKグループです。
INTERNETパーミッションは、広告表示に使用されるのでほとんどの無料アプリで使用されています。
悪用された場合は、スマホ内の個人情報を簡単に外部に送信できてしまうという危険性がありますが、ほとんどのアプリで使用していることもありなかなか判断が付かないです。
ここら辺はアプリの開発元を信用するしかないですね。
ではでは~。