2012/07/19

Android:ACTION_MANAGE_NETWORK_USAGEのサポート


●Android4.0で追加されたNetwork Usage機能


Android4.0で、アプリのネットワーク使用量をユーザが確認できるNetwork Usage機能が追加されました。
アプリ毎やネットワーク種別毎に通信量の上限を設定することも可能です。

これはつまり、ユーザはネットワーク通信量や頻度が確認可能であり、またネットワーク通信量に関して興味を持つことに繋がります。
そういった意味で、ネットワーク通信を必要とするアプリにとって、その通信量・頻度が確認可能になったことによる影響を考える必要が出てきます。
Android developer -Android 4.0 for Users / Control over network data-



●インテントアクション:ACTION_MANAGE_NETWORK_USAGE


Network Usageでは、各アプリ毎の通信量や個別の設定を行うことが可能です。
アプリ毎の詳細画面では下記が確認・設定できます。
  • アプリのフォアグラウンド時の通信量
  • アプリのバックグラウンド時の通信量
  • アプリ個別のネットワーク設定の起動
  • バックグラウンドデータ通信の制限
ユーザはモバイル回線の通信量に上限を設けることができます。
また、アプリ毎にモバイル回線使用時のバックグラウンド通信を制限できます。
しかし、アプリによってはこれだけの設定項目では不十分な場合があります。
例えば、メールアプリでは新着メールのチェック機能を制限したくない場合です。
こういったアプリの特性を考慮した、より細かい通信制御は各アプリに委ねられます。

アプリ毎の詳細画面には[View app settings]ボタンが用意されています。
これは、そのアプリが用意したネットワーク設定を起動するトリガになるボタンです。
ネットワーク設定をサポートするには、アプリのネットワーク設定ActivityのIntentFilter
に下記を追加します。
<intent-filter>
    <action android:name="android.intent.action.MANAGE_NETWORK_USAGE" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>
[View app settings]ボタンが押されると、MANAGE_NETWORK_USAGEアクションでアプリの
ネットワーク設定画面を起動します。
IntentFilterが登録されていないと[View app settings]ボタンは無効化されます。

用意したネットワーク設定画面で、ユーザが通信を細かく制御できる仕組みを提供することが推奨されます。

以上です。