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 では同じコードと同じアプリで取得できます。