Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 2.1GuessContentTypeFromName不工作 String filename=Environment.getExternalStorageDirectory()+“/word.docx”; 试一试{ 文件=新文件(文件名); Uri路径=Uri.fromFile(文件); 意向视图doc=新意向(意向.行动\u视图); Log.i(标记,“mime类型”+URLConnection.guessContentTypeFromName(文件名).toString()); viewDoc.setDataAndType(路径,URLConnection.guessContentTypeFromName(文件名)); PackageManager pm=getPackageManager(); 列表应用= pm.QueryInputActivities(仅限viewDoc、PackageManager.MATCH_DEFAULT_); 如果(apps.size()>0){ startActivity(viewDoc); } }捕获(例外e){ Log.i(标记“oh exception”+e.getMessage()); }_Android - Fatal编程技术网

Android 2.1GuessContentTypeFromName不工作 String filename=Environment.getExternalStorageDirectory()+“/word.docx”; 试一试{ 文件=新文件(文件名); Uri路径=Uri.fromFile(文件); 意向视图doc=新意向(意向.行动\u视图); Log.i(标记,“mime类型”+URLConnection.guessContentTypeFromName(文件名).toString()); viewDoc.setDataAndType(路径,URLConnection.guessContentTypeFromName(文件名)); PackageManager pm=getPackageManager(); 列表应用= pm.QueryInputActivities(仅限viewDoc、PackageManager.MATCH_DEFAULT_); 如果(apps.size()>0){ startActivity(viewDoc); } }捕获(例外e){ Log.i(标记“oh exception”+e.getMessage()); }

Android 2.1GuessContentTypeFromName不工作 String filename=Environment.getExternalStorageDirectory()+“/word.docx”; 试一试{ 文件=新文件(文件名); Uri路径=Uri.fromFile(文件); 意向视图doc=新意向(意向.行动\u视图); Log.i(标记,“mime类型”+URLConnection.guessContentTypeFromName(文件名).toString()); viewDoc.setDataAndType(路径,URLConnection.guessContentTypeFromName(文件名)); PackageManager pm=getPackageManager(); 列表应用= pm.QueryInputActivities(仅限viewDoc、PackageManager.MATCH_DEFAULT_); 如果(apps.size()>0){ startActivity(viewDoc); } }捕获(例外e){ Log.i(标记“oh exception”+e.getMessage()); },android,Android,这是我的代码,我在Android2.1中没有得到mime类型,我在日志中得到null 不过,我可以在Android 2.3.3中使用相同的代码和相同的应用程序获得它。您需要向函数传递url。请尝试在其前面加上“file://” 更新:移动注释以回答:您需要使用MimeTypeMap而不是URLConnection的guessContentTypeFromName。有关示例,请参见我正在传递/sdcard/word.docx。可以吗?否则我就通过了filename://sdcard/word.do

这是我的代码,我在Android2.1中没有得到mime类型,我在日志中得到null


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

您需要向函数传递url。请尝试在其前面加上“file://”


更新:移动注释以回答:您需要使用
MimeTypeMap
而不是
URLConnection
guessContentTypeFromName
。有关示例,请参见

我正在传递/sdcard/word.docx。可以吗?否则我就通过了filename://sdcard/word.docx 喜欢thisfile:///sdcard/word.docx --遵守三个
/
s:两个用于文件协议,一个用于根访问no,这不起作用。我有个例外。我不知道安卓2.3.3中的问题在哪里。它在catch块中运行,但异常为null。我不熟悉安卓(我希望我能猜到),但这似乎是在追求同样的东西,尝试这种方法
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());
}