Przejrzałem wszystkie podobne pytania tutaj, ale nie mogę do końca życia zrozumieć, co robię źle.Uruchamianie intencji dla pliku i typu MIME?
Napisałem aplikację, która próbuje uruchomić różne pliki, sortując przeglądarkę plików. Po kliknięciu pliku, próbuje uruchomić program na podstawie skojarzonego typu MIME lub wyświetla okno dialogowe "Wybierz aplikację do uruchomienia".
Oto kod używam do uruchomienia:
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);
nie to i generuje błąd:
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///file:/mnt/sdcard/roms/nes/Baseball_simulator.nes }
Teraz, jeśli mogę zainstalować OI File Manager na przykład, otwiera zamiast tego zgłaszany błąd, a następnie, jeśli kliknę ten sam plik wewnątrz niego, uruchamia odpowiednie okna dialogowe.
Zauważyłem, że typ MIME dla tego konkretnego pliku kończy się niepowodzeniem, ale inne typy MIME, takie jak .zip
, zwracają wartości.
Czy brakuje mi czegoś, co gdy typ MIME ma wartość null, wywołuje okno dialogowe, które pozwala użytkownikowi wybrać?
Próbowałem innych wariantów uruchamiania aplikacji, w tym nie ustawiania typu MIME i tylko przy użyciu .setData
bez powodzenia.
Czynność, którą chcę wykonać, to kliknięcie pliku przez użytkownika, jeśli jest on powiązany z aplikacją, która uruchamia się w aplikacji, a jeśli nie, użytkownik uzyskuje okno dialogowe "Pełna operacja przy użyciu" z listą aplikacji.
Dzięki za radę.
co nadchodzi w ciągu MIME? wklej go tutaj –
Wygląda na to, że jeśli jest to coś, co ma skojarzony plik, to jest poprawny typ MIME, ale jeśli jest to coś, co nie jest związane z aplikacją, przechodzi przez zero .. – stonedonkey