Network Usage機能と連携する


Android 4.0では新たに追加されたNetwork Usage機能によってアプリケーションが使用するネットワークのトラフィック量をユーザが把握、及びコントロールできるようになりました。

ユーザは端末にインストールされている各アプリケーションごとにネットワークの使われ方を細かく確認したり設定することができます。たとえば、使用するトラフィック量の上限を設定したり、バックグラウンドデータの使用を無効にするといったことができるようになります。

 

また、このNetwork Usage機能ではアプリケーションにネットワーク設定画面が備わっている場合、
Network Usageの画面から直接呼び出すことができます。

上の図のように、ユーザは各アプリのトラフィック量を視覚的に把握することができるので、
トラフィック量の多いアプリを見つけた場合は、そのアプリの設定画面からネットワークの設定を
行うといったことができるようになります。

詳細は続きからご覧下さい。

Network Usageの設定画面

まず、上で示したNetwork Usageの設定画面はAndroidの設定画面から辿ることができます。

設定アプリからデータ使用(言語が英語の場合は「Data Usage」)を開きます。

ネットワーク設定画面の提供

冒頭で触れたように、ネットワークを利用するアプリにはあらかじめネットワーク設定画面を
提供しておくと良いでしょう。データの同期頻度やWiFi接続時にのみアップロード/ダウンロードを
行うというようなネットワーク設定をアプリで柔軟に行えるようにしておくことで、ネットワークを
効率よく使うことができるようになります。

設定画面を提供する場合はマニフェストファイルに
ACTION_MANAGE_NETWORK_USAGEと呼ばれるインテントフィルタの設定を行います。

■AndroidManifest.xml

<activity android:name="DataPreferences" android:label="@string/title_preferences">
    <intent-filter>
       <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
       <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

この設定により、システムの設定アプリとアプリのネットワーク設定画面との紐付けが行われ、
ユーザーがAndroidの設定画面からアプリのトラフィックを見たとき
“View apps settings”ボタンが押せるようになります。

ボタンを押すとアプリのネットワーク設定画面を開くことができるので、
ユーザはアプリごとに適切なトラフィック設定が行えるようになります。

※Android 4.0エミュレータでNetwork Usage機能は動作しないため、
今回の記事は実際に動作確認に基づいた内容ではありません。
市販のAndroid 4.0端末上では動作が異なる可能性がありますので予めご了承下さい。