Android : 延迟数据发送到设备有WIFI上网时
Android : Delay data sending to when the device has a WIFI internet access
我正在为一项非常具体的业务制作一种 KYC 一次性应用程序。它将存储数据,包括每个用户的数据:
- 2张相机图片
- 关于用户的一些信息
并且它必须离线工作。
当Android设备连接时,可能是1或2天后,应用程序将不得不发送之前存储在管道中的所有数据。
- 什么是最好的解决方案?
- 当我有 WIFI 连接时,我是否必须 运行 应用才能发送数据?
- 我如何加密数据以对 public 隐藏用户数据(图库中没有照片...)
您可以使用 GCMNetworkManager
来实现它。此 API 提供周期和一次性任务以在后台发送数据。您可以根据某些条件安排网络任务,例如连接到 WiFi 时(您的情况)、充电时。
因此,根据您的情况,您可以编写 one-off
任务来实现它:
OneoffTask task = new OneoffTask.Builder()
.setService(MyTaskService.class)
.setTag(TASK_TAG_WIFI)
.setExecutionWindow(0L, 3600L)
.setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
.build();
mGcmNetworkManager.schedule(task);
现在MyTaskService
可以这样实现:
public class MyTaskService extends GcmTaskService {
@Override
public int onRunTask(TaskParams taskParams) {
//some network oriented synchronous tasks.
return GcmNetworkManager.RESULT_SUCCESS;
}
Will I have to run the app in order to send the data when I will have a WIFI connection?
否
我正在为一项非常具体的业务制作一种 KYC 一次性应用程序。它将存储数据,包括每个用户的数据:
- 2张相机图片
- 关于用户的一些信息
并且它必须离线工作。
当Android设备连接时,可能是1或2天后,应用程序将不得不发送之前存储在管道中的所有数据。
- 什么是最好的解决方案?
- 当我有 WIFI 连接时,我是否必须 运行 应用才能发送数据?
- 我如何加密数据以对 public 隐藏用户数据(图库中没有照片...)
您可以使用 GCMNetworkManager
来实现它。此 API 提供周期和一次性任务以在后台发送数据。您可以根据某些条件安排网络任务,例如连接到 WiFi 时(您的情况)、充电时。
因此,根据您的情况,您可以编写 one-off
任务来实现它:
OneoffTask task = new OneoffTask.Builder()
.setService(MyTaskService.class)
.setTag(TASK_TAG_WIFI)
.setExecutionWindow(0L, 3600L)
.setRequiredNetwork(Task.NETWORK_STATE_UNMETERED)
.build();
mGcmNetworkManager.schedule(task);
现在MyTaskService
可以这样实现:
public class MyTaskService extends GcmTaskService {
@Override
public int onRunTask(TaskParams taskParams) {
//some network oriented synchronous tasks.
return GcmNetworkManager.RESULT_SUCCESS;
}
Will I have to run the app in order to send the data when I will have a WIFI connection?
否