Androidパーミション別-何してんの?#5 NETWORK編


Pocket

前回に続いて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パーミッションは、広告表示に使用されるのでほとんどの無料アプリで使用されています。
悪用された場合は、スマホ内の個人情報を簡単に外部に送信できてしまうという危険性がありますが、ほとんどのアプリで使用していることもありなかなか判断が付かないです。
ここら辺はアプリの開発元を信用するしかないですね。

ではでは~。
 
 

Leave a Comment

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

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