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()); }
这是我的代码,我在Android2.1中没有得到mime类型,我在日志中得到nullAndroid 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
不过,我可以在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());
}