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


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

はじめに

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以上の通信です。