データ通信とモバイルネットワーク


データ通信とモバイルネットワーク

はじめに

Fire Phone、Fire HDX 8.9(第4世代)、Kindle Fire HDX 8.9"(第3世代)、Kindle Fire HDX 7"(第3世代)、Kindle Fire HD 8.9" 4G(第2世代)のタブレットでは、モバイルネットワークプランに加入していれば、Wi-Fi接続だけでなくモバイルネットワーク接続も利用できます。デフォルトでは、これらのデバイスはWi-Fiに接続されます。ただし、Wi-Fi接続を利用できない場合は、モバイルネットワークプランに加入していれば、モバイルネットワークに接続されます。Fire PhoneやFireタブレット(第3世代と第4世代)では、通信キャリアからプランを購入する必要があります。Kindle Fire HD 8.9" 4G(第2世代)タブレットにはモバイルネットワークプランがバンドルされています。

プランによっては1か月に通信できるデータ量が決まっています。期間が3か月に設定されている場合もあります。データ量の上限に達すると、超過分の料金が発生する場合や、接続が遮断される場合があります。

データ通信は電池も消耗します。コンテンツのダウンロードやアップロードは、Wi-Fiを使用するよりもモバイルネットワークを使用するほうが電池を消耗します。電池の消耗を抑えるには、ネットワークトラフィックを最小化します。たとえば、アプリでコンテンツをダウンロードする場合は、バックグラウンドでダウンロードが実行されるようにします。また、ネットワーク通信をまとめて一度に行うことで、電池の消耗を最小限に抑えることもできます。すべてのデータを短時間で通信するほうが、少量を長時間にわたって断続的に通信するよりも、電池の消耗を抑えることができます。

通信をデータプランの制限内に収め、電池の消耗を抑えるには、次の点を考慮してください。

モバイルネットワークの接続を確認

アプリでファイルやデータの通信を開始する前に、デバイスがモバイルネットワークに接続されているかどうかを確認します。次のコードでは、isWIFIConnectedがtrueの場合、デバイスはWi-Fiに接続されています。isWANConnectedがtrueの場合、デバイスはモバイルネットワークに接続されています。

final ConnectivityManager connectManager =
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo netInfo =
connectManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

boolean isWANConnected = netInfo.isConnected();

NetworkInfo netInfo =
connectManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

boolean isWIFIConnected = netInfo.isConnected();

デバイスがWi-Fiに接続されている場合、データ通信を制限する必要はありません。ただし、デバイスがモバイルネットワークに接続されている場合、通信を続行するかどうかの選択肢をユーザーに提示しないまま大量のデータ通信が行われるのは、避ける必要があります。

ストリーミングメディア

ストリーミングメディアは、データ通信可能量を急速に消費します。アプリでストリーミングメディアが使用される場合は、通信を開始する前にユーザーにアラートを表示してください。整合性を確保するために、アラートに次の機能を追加してください。

  • 次のテキストを表示

    データ通信可能量が過度に消費されないように、メディアをストリーミングする際にはWi-Fiネットワークに接続することをお勧めします。モバイルネットワーク接続を使用してストリーミングしますか。

  • キャンセルするか続行するかをユーザーが選択するためのボタン

ユーザーが続行を選択した場合に、低解像度でサイズの小さいストリーミングファイルを使用して、ユーザーの通信可能量の消費を抑えることを検討してください。

バックグラウンドでの転送

デバイスがモバイルネットワークに接続しているときに、ユーザーが気付かないうちにデータ転送が発生しないようにします。データをまとめておき、デバイスがWi-Fiネットワークに接続されたときに転送されるようにしてください。それができない場合は、アラートを表示し、転送を続行するかWi-Fiに接続されるまで保留にするかをユーザーが選択できるようにしてください。

接続が途切れたとき

データ通信可能量が上限に達するとモバイルネットワーク接続が切断される場合もあるため、接続が途切れた場合でも適切に対応できるようにしておく必要があります。データの転送ができない場合はユーザーにアラートを表示します。

プランがバンドルされたタブレット

Kindle Fire HD 8.9" 4G(第2世代)タブレットにはモバイルネットワークプランがバンドルされています。このプランでは、1か月のデータ通信可能量が250MB、一度に通信できるデータ量が50MBに制限されています。

一度に通信できるデータ量に上限があるため、アプリで50MBを超えるファイルのダウンロードがモバイルネットワークで試行されないようにする必要があります。50MBを超えるデータ通信は失敗します。代わりにアラートを表示する必要があります。ほかのFireアプリとの整合性を確保するために、アラートに次の機能を実装してください。

  • 次のテキストと、「ダウンロード」または「アップロード」を適宜選択するロジック

    この項目は50MBを超えるため、モバイルネットワーク接続ではダウンロードできません。Wi-Fiネットワークに接続してからダウンロードしてください。

    この項目は50MBを超えるため、モバイルネットワーク接続ではアップロードできません。Wi-Fiネットワークに接続してからアップロードしてください。

  • アラートを消去して通信をキャンセルするボタン
  • Wi-Fiネットワークに接続するためのボタン(使用可能な場合)

次のコードを使用してWi-Fi接続を開始できます。

startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));

50MBには満たないものの、その月のデータ通信可能量の大部分を消費する場合は、ユーザーにアラートを表示し、Wi-Fiに接続するかモバイルネットワークで通信を続行するかを選択するオプションを提示してください。適切なしきい値は、5MB以上の通信です。