сохранить изменения в файле? - PullRequest
1 голос
/ 31 декабря 2011

У меня есть файл на моей SDCard.Когда я обычно открываю и меняю его с помощью «officeuite», я могу сохранить изменения.Когда я открываю его в своем приложении следующим образом, «officeuite» отображает его, но не может сохранить изменения и никоим образом не возвращает к моей деятельности.Есть ли идея?
Вот мой код:

import java.io.File;
import java.net.URI;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.webkit.MimeTypeMap;

public class OfficesuiteSaveAsActivity extends Activity {
    private String fileDir;
    private File file;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedlnstanceState) {
        super.onCreate(savedlnstanceState);
        setContentView(R.layout.main);
        String sdCardDir = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        String fileName = "TestofficeSuite.docx";
        fileDir = sdCardDir + File.separator + fileName;
        file = new File(fileDir);
        displayFile(file.toURI());
    }

    public void displayFile(URI uriString) {
        Uri data = Uri.parse(uriString.toString());
        Intent newlntent1 = new Intent();
        newlntent1.setAction(Intent.ACTION_VIEW);
        MimeTypeMap mtm = MimeTypeMap.getSingleton();
        newlntent1.setDataAndType(data, mtm.getMimeTypeFromExtension("docx"));
        startActivity(newlntent1);
    }
}

1 Ответ

1 голос
/ 03 января 2012

Я проверяю значение «Uri.parse (file.toURI (). ToString ())» и «Uri.fromFile ()» для файла в SDCard: «Uri.parse (file.toURI (). ToString ())» начинается как «file: / mnt / ...», а «Uri.fromFile ()» начинается как «file: /// mnt / ...» Так что я меняю код, и он отлично работает:

public class OfficesuiteSaveAsActivity extends Activity {
    private String fileDir;
    private File file;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedlnstanceState) {
        super.onCreate(savedlnstanceState);
        setContentView(R.layout.main);
        String sdCardDir = Environment.getExternalStorageDirectory()
                .getAbsolutePath();
        String fileName = "TestofficeSuite.docx";
        fileDir = sdCardDir + File.separator + fileName;
        file = new File(fileDir);
        displayFile(file);
    }

    public void displayFile(File file) {
        Uri data = Uri.fromFile(file);
        Intent newlntent1 = new Intent();
        newlntent1.setAction(Intent.ACTION_VIEW);
        MimeTypeMap mtm = MimeTypeMap.getSingleton();
        newlntent1.setDataAndType(data, mtm.getMimeTypeFromExtension("docx"));
        startActivity(newlntent1);
    }
}
...