0

ich folgenden Code ein bestimmtes Verzeichnis zu öffnen gefunden haben:Android: Kann nicht bestimmte Ordner öffnen

Intent intent = new Intent(Intent.ACTION_VIEW); 
Uri uri = Uri.parse(StaticMember.APP_DIR); 
intent.setDataAndType(uri, "resource/folder"); 
context.startActivity(intent); 

Aber jetzt habe ich ein Problem bin vor, dass es nur dann, wenn ES Datei Explorer auf Ihrem Gerät installiert funktioniert, andere Dateimanager-Apps können nicht erkannt werden.

Wie wird das Problem gelöst?

+0

betrachten das Hinzufügen eines Moduls wie https://github.com/ mit psaravan/FileBrowserView zu Ihrer App. –

Antwort

0

Erstens ist resource/folder kein offizieller MIME-Typ.

Zweitens ist ACTION_VIEW zum Anzeigen eines Stücks Inhalt. Ein Verzeichnis ist aus Sicht von Android kein Stück Inhalt.

Es ist nicht erforderlich, dass ein Android-Gerät Aktivitäten ausführt, die den Inhalt eines Verzeichnisses anzeigen können. Es gibt keine offiziellen Standards für die Struktur, die eine solche Aktivität anfordern würde. Es kann einige Konventionen unter Dateimanager-Entwicklern geben (z. B. was auch immer die Hölle resource/folder sein soll), aber es ist nicht erforderlich, dass alle Dateimanager eine solche Aktivität anbieten oder dass ein Benutzer einen solchen Dateimanager installiert hat.

Also, Sie das Problem, indem entweder beheben:

  • den Code löschen und die Funktion eliminiert oder

  • PackageManager und queryIntentActivities() verwenden, um zu sehen, ob es eine Tätigkeit, die Ihre Intent Griffe, scheitert graziös, wenn es keine gibt

  • Fangen die ActivityNotFoundException und fehlerfrei, wenn man geworfen wird

  • Versuchen Sie nicht, auf ein Verzeichnis für das Surfen Drittanbieter-Anwendungen zu verlassen und Ihre eigene Benutzeroberfläche für die Umsetzung vielleicht existing third-party libraries for that

+0

Ich weiß, ich kann überprüfen, ob es irgendeine App gibt, die diese Art von MIME-Typ behandelt. Das Hauptproblem ist, dass ich einen bestimmten Ordner öffnen möchte. –

+0

@FaisalShaikh: Dann verlassen Sie sich nicht auf Apps von Drittanbietern zum Durchsuchen Ihres spezifischen Ordners und implementieren Sie Ihre eigene Benutzeroberfläche. – CommonsWare

+0

Etwas von Grund auf neu zu bauen, was bereits existiert, ist keine gute Idee. –