0

を開くことができません。私は、特定のディレクトリを開くには、次のコードを発見した:アンドロイド:特定のフォルダ

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

しかし、今、私はそれがESファイルエクスプローラは、お使いのデバイスにインストールされている場合にのみ機能することを問題に直面しています、他の人をファイルマネージャのアプリは検出できません。

この問題を解決するにはどうすればよいですか?

+0

を使用しないでください。あなたのアプリへのpsaravan/FileBrowserView –

答えて

0

まず、resource/folderは、公式のMIMEタイプではありません。

次に、ACTION_VIEWは、コンテンツを表示するためのものです。ディレクトリは、Androidの立場からはコンテンツではありません。

Androidデバイスがディレクトリのコンテンツを表示できるアクティビティを持つ必要はありません。 Intent構造がそのような活動を要求するものについての公式の基準はない。ファイルマネージャの開発者(例えば、resource/folderが何であるべきか)にはいくつかの慣習があるかもしれないが、すべてのファイルマネージャがそのような活動を提供する必要はなく、ユーザがそのようなファイルマネージャをインストールする必要もない。

だから、あなたがいずれかの方法で問題を解決:

  • あなたIntentを扱う活動があるかどうかを確認するためにPackageManagerqueryIntentActivities()を使用したコードを削除し、機能を排除し、または

  • ActivityNotFoundExceptionをキャッチし、スローされた場合はうまく機能しない

  • は、ディレクトリを閲覧するためのサードパーティ製のアプリに頼るしようとすると、そのための独自のUIを実装し、おそらくhttps://github.com/のようにモジュールを追加することを検討existing third-party libraries for that

+0

私はこの種のMIMEタイプを扱うアプリケーションがあるかどうかを確認できます。主な問題は、特定のフォルダを開くことです。 –

+0

@FaisalShaikh:その後、特定のフォルダを閲覧するためのサードパーティのアプリケーションに頼らず、独自のUIを実装してください。 – CommonsWare

+0

すでに存在するものをゼロから構築するのは良い考えではありません。 –

関連する問題