2016-07-07 9 views
0

私のアプリケーションからMSWordドキュメントを編集しようとしています。 私はこれを行うためにインテントを使用することに決めましたが、MSWordは編集する文書を見つけることができません。ドキュメントの場所を正しく定義していないか、uriを正しく渡していないかどうかはわかりません。Intents with 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ファイルURLでファイルURIを作成する必要があります。 –

関連する問題