モバイルデータを使用するとコストがかかります。また、データプランの料金が手頃な価格ではない場合は、さらにコストが大きくなるので、データの使用を削減したり、アプリから接続をブロックしたりする機能が Android ユーザーには必要です。Android 7.0 リリースのデータセーバー機能は、こうした機能をユーザーに提供します。
データセーバー機能は、ユーザーがオン / オフを選択できます。アプリ デベロッパーがデータセーバー モードがオンになっているかどうかを確認するためには、新しい API を使用する必要があります。この機能がオンになっている場合、データアクセスが少なくなるように、あるいはデータアクセスが発生しないようにアプリケーションを調整できるため、アプリ デベロッパーは適切な設定を行うことができます。
エンドユーザーには、バックグラウンドでデータにアクセスできるアプリとフォアグラウンドでのみデータにアクセスできるアプリをコントロールできるという利点があります。これにより、ユーザーの設定に基づいてデータセーバーがオンになっている場合に、必要なバックグラウンド データのやり取りが行われるようになります。
実装
データセーバーはプラットフォームに搭載された機能なので、デバイス メーカーは Android 7.0 リリースのデフォルト機能としてデータセーバーを利用できます。次の URL からソースファイルを取得してください。
packages/apps/Settings/src/com/android/settings/datausage
設定インターフェース
デフォルトのデータセーバー設定ユーザー インターフェースは、Android オープンソース プロジェクト(AOSP)で提供されています。以下のスクリーンショットで例をご覧ください。
これらのスクリーンショットは、実際にデータセーバー モードを使用した状態を示しています。

図 1. データセーバーのオンとオフの切り替え

図 2. バッテリー セーバーとデータセーバーの両方がオンの場合

図 3. アプリ固有のデータ使用量画面: [設定] > [アプリ] > [データ使用量]

図 4. クイック設定メニューでのデータセーバーのステータス
アプリ
重要: デバイスへの実装を行う場合、ホワイトリストに登録しないでください。ホワイトリストに登録した場合でも、ユーザーによる削除は可能です。他のアプリを含めた場合、ユーザーはデータセーバーを適用するアプリを選択する必要があります。
アプリ開発者は、アプリをプリロードした OEM や携帯通信会社などに対して、データセーバーを実装するように働きかける必要があります。データセーバーのステータスの検出と監視を行うためのアプリ開発者用の手順については、developer.android.com の「データセーバー」を参照してください。パートナー様に有用なその他の詳細については、次のセクションをご覧ください。
データセーバー モードを最適化する方法は次のとおりです。
- 不要な画像を削除する
- 他の画像については解像度を下げる
- 低いビットレートの動画を使用する
- 既存の軽量化設定を適用する
- データを圧縮する
- データセーバーがオフの場合でも、ネットワークの状態が従量制か非従量制かを考慮する
データセーバーを適切に利用するには、アプリで次の操作を行わないようにします。
- 動画の自動再生
- コンテンツや添付ファイルのプリフェッチ
- 更新情報やコードのダウンロード
- バックグラウンド データがコア機能の真の一部でないという条件下での、許可リストへの登録依頼
- より多くの帯域幅を使用するライセンスとしての許可リストの取り扱い
検証
実装を行う場合は、次の CTS テストを実行することで、機能バージョンが意図したとおりに動作することを確認できます。
com.android.cts.net.HostsideRestrictBackgroundNetworkTests
さらに、最初にこのコマンドを実行して使用可能なオプションをすべて表示することで、adb
コマンドを使用して手動でテストを実行できます。
adb shell cmd netpolicy
たとえば、次のコマンドは、許可リストに登録されたアプリの UID を返します。
adb shell cmd netpolicy list restrict-background-whitelist