私はここですべての同様の質問を見直しましたが、私の人生は私が間違っていることを理解することはできません。ファイルとMIMEタイプのインテントを起動しますか?
ファイルブラウザのようなさまざまなファイルを起動しようとするアプリケーションを作成しました。 ファイルをクリックすると、関連するMIMEタイプに基づいてプログラムを起動しようとするか、「起動するアプリケーションを選択」ダイアログが表示されます。
ここで私は起動に使用しているコードです:
File file = new File(app.mediaPath() + "/" +_mediaFiles.get(position));
Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW);
String extension = android.webkit.MimeTypeMap.getFileExtensionFromUrl(Uri.fromFile(file).toString());
String mimetype = android.webkit.MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
myIntent.setDataAndType(Uri.fromFile(file),mimetype);
startActivity(myIntent);
これがエラーを失敗し、生成します。
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
私はインスタンスのOIファイルマネージャをインストールした場合さて、それはこの代わりに開きますエラーがスローされ、その中から同じファイルをクリックすると、適切なダイアログが表示されます。
私は特定のファイルのMIMEタイプが失敗したことに気付きましたが、.zip
のような他のMIMEタイプは値を返します。
MIMEタイプがnullのときにユーザーが選択できるダイアログを呼び出すときに、何か不足していますか?
私は、MIMEタイプを設定せず、.setData
のみを使用するなど、アプリを起動するさまざまな方法を試しました。
私は、ユーザーがファイルをクリックすると、アプリケーションが起動するアプリケーションに関連付けられている場合、それ以外の場合は、アプリケーションのリストを使用して「完了アクションを使用する」ダイアログが表示されます。
ありがとうございました。
何が来ていますか?それをここに貼り付けてください –
それは関連するファイルを持っているかのように見えますが、それは正しいMIMEタイプですが、それがアプリに結び付けられていないものであればnullになります.. – stonedonkey