5

私はAndroidでファイルエクスプローラーアプリを開発しています。拡張子が不明なファイルを処理するにはどうすればよいですか?このような種類のファイルを開こうとすると、ActivityNotFound例外がスローされます。ただし、アプリを手動で選択して開くことができるように、システムにアプリのリストをポップアップ表示させたいと思います。誰かがここで私を助けることができますか?

ファイルとその拡張子をインテントにバインドして、ファイルを開くアクティビティを開始しています。

Intent intent = new Intent(Intent.ACTION_VIEW);
MimeTypeMap mime = MimeTypeMap.getSingleton();
String ext = file.getName().substring(file.getName().lastIndexOf(".") + 1);
String type = mime.getMimeTypeFromExtension(ext);
intent.setDataAndType(Uri.fromFile(new File(file.toString())), type);
try
{
    startActivity(intent);
}
catch(Exception e){}
4

2 に答える 2

4

ActivityNotFound特定のファイルタイプを処理できるアプリケーションが登録されていない場合にスローされます。これは、表示するアプリのリストが空になることを意味します。

この状況に対処する最も適切な方法は、ActivityNotFound例外をキャッチし、ファイルを開くための適切なアプリケーションがないことをユーザーに通知するトーストを表示することです。

すべてのAndroidブラウザはこのように進行します。

于 2012-04-21T18:03:40.593 に答える
0

このリンクはここに残しておきます。これは同じ問題を対象としており、もう少し詳しく説明しています(2番目の回答、コメントを読む):Androidのファイルに基づいてアクティビティを起動する

于 2012-04-21T18:07:47.877 に答える