2016-10-13 40 views
0

请看下面的代码,因为你可以看到我的FilePath只得到这个路径/document/1393,所以我如何得到我的绝对路径像/sdcard/document/test.docx发送我的意图应用程序选择器打开ms word文档

// Get Result Back 
@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    switch(requestCode){ 
     case FILE_SELECT_CODE: 
      if(resultCode==-1){ 
       String FilePath = data.getData().getPath(); 
       Log.d("onActivityResult", "FilePath = " + FilePath); 
       cityEditText.setText(FilePath); 
      } 
      break; 

    } 

} 

回答

0

尝试这种情况:

Uri uri = Uri.fromFile(new File("/path/to/file")); 
Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
// Verify that there are applications registered to handle this intent 
// (resolveActivity returns null if none are registered) 
if (intent.resolveActivity(getPackageManager()) != null) { 
    startActivity(intent); 
} 

取决于你在哪里执行从这个代码(一个活动,视图,片段),则可能需要调整到getPackageManager()getActivity().getPackageManager()getContext().getPackageManager()

+0

非常感谢您的快速回复。但我有点困惑。这将defenatly作品任何扩展如.pdf或doc或.docx或PNG等......你有这个想法。 – anuloo

+0

是的,这应该根据uri确定适当的操作。如果你想指定自己,你可以使用'intent.setDataAndType(uri,“application/pdf”);'例如,并根据需要调整第二个mime /文件类型参数。换句话说,你可以使用''application/msword'',对于excel应用程序/ vnd.ms-excel等,使用''application/vnd.ms-powerpoint“',等等。在这种情况下,你可以创建没有第二个uri参数的意图对象。 –

+0

谢谢,我会明天试试,我会让你知道我是如何得到的。感谢一百万。 – anuloo