我已經在這裏回顧了所有類似的問題,但我不能爲我的生活弄清楚我做錯了什麼。啓動文件和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);
這種失敗並生成錯誤:如果我安裝例如OI文件管理器
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
現在,它打開的這個代替錯誤被拋出,然後如果從內部單擊相同的文件,它將啓動相應的對話框。
我注意到該特定文件的MIME類型失敗,但其他MIME類型如.zip
確實返回值。
我是否錯過了當MIME類型爲空時調用允許用戶選擇的對話框?
我試過啓動應用程序的其他變體,包括不設置MIME類型,只使用.setData
沒有成功。
我想要發生的操作是,用戶單擊文件,如果它與應用程序啓動的應用程序相關聯,如果不是,則用戶通過應用程序列表獲得「完成操作使用」對話框。
感謝您的任何建議。
什麼是mimetype字符串?將它粘貼到這裏 –
看起來像是有某個關聯文件是正確的MIME類型,但是如果它沒有綁定到應用程序,它通過null .. – stonedonkey