Buradaki tüm benzer soruları inceledim, ama hayatım boyunca yanlış yaptığım şeyi anlayamıyorum.Dosya ve MIME türü için bir amaç başlatılıyor mu?
Çeşitli dosyaları, bir dosya tarayıcısının türünü başlatmaya çalışan bir uygulama yazdım. Bir dosya tıklandığında, ilgili MIME türüne göre programı başlatmaya çalışır veya "Başlatılacak Uygulamayı Seçin" iletişim kutusunu gösterir. İşte
Ben başlatmak için kullanıyorum kodu: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);
Bu başarısız olur ve hata oluşturur: Ben mesela OI Dosya Yöneticisi yüklerseniz Şimdi
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
, bu yerine açılır atılan hata ve aynı dosyayı içinde içinden tıklarsam, ilgili iletişim kutularını başlatır.
O dosya için MIME türünün başarısız olduğunu fark ettim, ancak .zip
gibi diğer mime türleri de değer döndürüyor.
MIME türü, kullanıcının seçmesine izin veren bir iletişim kutusunu çağırmak için null olduğunda bir şey eksik mi?
MIME türünü ayarlama ve yalnızca .setData
'u kullanarak başarıyı uygulama da dahil olmak üzere, uygulamayı başlatmanın diğer varyasyonlarını denedim.
Olmak istediğim işlem, bir kullanıcı bir uygulamayı tıklarsa, bir uygulama uygulamanın başlattığı bir uygulamala ilişkilendirilmişse, kullanıcı bir uygulama listesiyle "İşlemi tamamla" iletişim kutusunu alır.
Her türlü öneriniz için teşekkürler.
mimetype dizgisinde ne var? Burada yapıştırın –
İlişkili bir dosyaya sahip bir şey doğru MIME türü gibi görünüyor, ancak bir uygulamaya bağlı olmayan bir şey varsa, bu, null aracılığıyla gelir .. – stonedonkey