2016-07-07 10 views
0

Ich versuche, ein MSWord-Dokument aus meiner App zu bearbeiten. Ich habe mich dafür entschieden, eine Absicht zu verwenden, aber MSWord scheint das zu bearbeitende Dokument nicht zu finden. Ich bin mir nicht sicher, ob ich den Speicherort des Dokuments nicht richtig definiere oder ob ich das URI nicht korrekt übergebe.Verwendung von MSWord

Intent intent = new Intent(Intent.ACTION_EDIT); 
file = Environment.getExternalStorageDirectory().getPath()+"/mydoc.doc"; 
Uri uri = Uri.parse(file); 
intent.setDataAndType(uri, "application/msword"); 
activity.startActivityForResult(intent, MSWORD); 

Das Ergebnis, das ich bekommen ist, dass Starts MSWord und ich erhalte eine Fehlermeldung: „Versuchen Sie die Datei auf dem Gerät zu speichern und dann sie zu öffnen“

„Datei kann nicht geöffnet“

Die Dokumentation zu MS Word und Intents scheint sehr spärlich zu sein!

Antwort

0

Endlich haben Sie es gefunden - hier für andere frustrierte Entwickler!

File file = new File(Environment.getExternalStorageDirectory(),"Documents/101131new.docx"); 
    Uri path = Uri.fromFile(file); 
    Intent objIntent = new Intent(Intent.ACTION_VIEW); 
    objIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    objIntent.setDataAndType(path,"application/msword"); 
    activity.startActivity(objIntent); 

Damit können Sie mit der lokalen Datei im Verzeichnis/Documents arbeiten.

0

Bitte versuchen Sie es unter:

/** 
    * @param fileRelativePath should be relative to SDCard 
    */ 
    private void launchMSWorldToOpenDoc(String fileRelativePath) { 
     File file = new File(Environment.getExternalStorageDirectory(), fileRelativePath); 
     Uri path = Uri.fromFile(file); 
     Intent msIntent = new Intent(Intent.ACTION_EDIT); 
     msIntent .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     msIntent .setDataAndType(path,"application/msword"); 
     activity.startActivity(msIntent); 
    } 
+1

Die großen Dank ist scheint für lokale Dateien gut zu funktionieren – markysparky

+0

Was ich im Idealfall will, ist Zugriff auf Dateien auf Microsoft Onedrive - aber sie sind nicht so in Bezug auf SD-Karte zugegriffen. Sofern ich bei OneDrive angemeldet bin, wie kann ich den Speicherort einer Datei auf OneDrive angeben? – markysparky

+0

Wir müssen prüfen, ob wir MSword bitten können, Dateien aus einer anderen Cloud zu öffnen, da diese Cloud auch nach Anmeldeinformationen fragt, und selbst wenn Anmeldeinformationen nicht benötigt werden, müssten wir einen Datei-URI mit dieser OneDrive-Datei-URL erstellen. –