3

我们从安卓开始。我们希望在互联网可用时(通过电子邮件)以编程方式发送文件。我们猜测最好的编程方式是在没有互联网的情况下将文件发送到队列中。当检测到互联网时,文件将开始一个一个上传。我们猜测代码应该如下所示:

后台服务不断检查是否有互联网:

public class EducarCabezoService extends Service{
    @Override
    public void onCreate() {
        super.onCreate();                 
        IntentFilter filter = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);        
        ciReceiver = new checkInternetReceiver();
        registerReceiver(ciReceiver, filter);         

后台服务为此目的使用 BroadcastReceiver:

public class checkInternetReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {     
        Intent uqofIntent = new Intent(context, UploadQueueOfFilesService.class);
        context.startService(uqofIntent);

我们没有找到如何将文件放入队列(可能不是正常程序)。我们可以从这里使用方法 isOnline() :

public class MainActivity extends Activity {
    public uploadFile (){
        if (!isOnline()){
            // TODO Send files to queue?

我们都不知道如何从该队列上传这些文件

public class UploadQueueOfFilesService extends Service{
    @Override
    public void onCreate() {
        // TODO Start uploading files
4

1 回答 1

-1

这将保存一个文件(到“内部存储”,您也可以使用外部存储(如果他们的设备有)):

String FILENAME = "out/file1";
String string = "hello world!";

FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();

当你上网时,只需在 out 目录中查找文件即可。一一上传和删除。

编辑:或者,如果文件已经在存储中,并且您不想复制或删除它们,请使用 SQLite 表为您的服务应上传的每个文件存储一行,然后从表中删除该行。

于 2014-01-21T20:28:17.450 回答