开发者控制台

数据传输和移动网络

数据传输和移动网络

简介

除了Wi-Fi连接,如果用户有移动网络套餐,则Fire手机、Fire HDX 8.9(第4代)、Kindle Fire HDX 8.9"(第3代)、Kindle Fire HDX 7"(第3代)和Kindle Fire HDX 8.9" 4G(第2代)平板电脑可以连接到移动网络。默认情况下,这些设备连接到Wi-Fi。但是,如果Wi-Fi连接不可用且用户有移动网络套餐,则设备将连接到移动网络。对于Fire手机和Fire平板电脑(第3代和第4代),用户必须从运营商处购买套餐。Kindle Fire HD 8.9" 4G(第2代)平板电脑包含捆绑以东南网络套餐。

某些套餐对每个月或三个月内(某些情况下)可以传输的数据量设有限制。用户达到数据限制后,可能会产生超期费用,或者连接可能会关闭。

数据传输也会消耗电量。使用手机网络下载或上传内容比通过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代)平板电脑包含捆绑以东南网络套餐。此套餐每月数据传输配额为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或更大的传输。