0
String filename = Environment.getExternalStorageDirectory()+"/word.docx";
try{
    File file = new File(filename);
    Uri path = Uri.fromFile(file);
    Intent viewDoc = new Intent(Intent.ACTION_VIEW);
        Log.i(TAG, "mime type "+URLConnection.guessContentTypeFromName(filename).toString());
    viewDoc.setDataAndType(path, URLConnection.guessContentTypeFromName(filename));

    PackageManager pm = getPackageManager();
    List<ResolveInfo> apps = 
        pm.queryIntentActivities(viewDoc, PackageManager.MATCH_DEFAULT_ONLY);

    if (apps.size() > 0){
        startActivity(viewDoc);
    }
}catch(Exception e){
    Log.i(TAG, "oh exception "+e.getMessage());
}

那是我的代码,我在 Android 2.1 中没有得到 mime 类型,我在那个日志中得到了 null。

不过,我可以在 Android 2.3.3 中使用相同的代码相同的应用程序来获取它。

4

1 回答 1

2

您需要将 url 传递给函数。尝试在它前面加上“file://”

更新:移动评论回答:您需要使用MimeTypeMap而不是URLConnection's guessContentTypeFromName。有关示例,请参见此 SO 线程

于 2012-04-17T11:16:54.843 回答