2016-07-07 70 views
0

我想從我的應用程序編輯MSWord文檔。 我決定使用一個意圖來做到這一點,但MSWord似乎無法找到要編輯的文檔。我不確定是否我沒有正確定義文檔的位置,或者如果我沒有正確傳遞uri。如何使用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); 

結果我得到的是推出的MSWord,我得到一個錯誤信息:「請嘗試保存在設備上的文件,然後打開它」

「無法打開文件」

關於MSWord和Intents的文檔似乎非常稀少!

回答

0

終於找到了它 - 在這裏爲其他沮喪的開發人員!

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); 

這使您可以處理/ Documents目錄中的本地文件。

0

請嘗試以下:

/** 
    * @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

這是偉大的感謝,似乎也爲本地文件 – markysparky

+0

工作,我非常想要做的是OneDrive訪問文件 - 但他們不爲相對於SD卡的訪問。 假設我登錄到OneDrive,如何指定OneDrive上文件的位置? – markysparky

+0

需要檢查,如果我們可以要求MSword從其他雲中打開文件,因爲該雲也會要求提供憑證,即使不需要憑證,我們也需要使用該OneDrive文件網址創建一些文件URI。 –