2016-07-07 32 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。 –