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代わりに使用する必要があります。例については、この SO スレッドを参照してくださいURLConnectionguessContentTypeFromName

于 2012-04-17T11:16:54.843 に答える