android開発 自分が端末にインストールしたファイラーをアプリから起動してディレクトリを選択したい

前提

アプリ内からSMBクライアント機能を有する(自分でインストールした)ファイラーを呼び出して、指定したSMBサーバー内のディレクトリを取得しようとしています。

端末内のディレクトリは、次のように、Intent.ACTION_OPEN_DOCUMENT_TREEをActivityResultContractsに与えれば、android組み込みのファイラーが起動して、ユーザーがディレクトリを選択できます。

val myLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {...} val myIntent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) myLauncher.launch(myIntent)

しかし、自分が端末にインストールしたファイラーを起動してディレクトリを選択することができません。

端末にインストールしているX-ploreというファイラーを指定するために

val myIntent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE) myIntent.setPackage("com.lonelycatgames.Xplore")

とすると、
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.OPEN_DOCUMENT_TREE pkg=com.lonelycatgames.Xplore }
というエラーとなります。

("com.lonelycatgames.Xplore"は、端末の Android/data/内のディレクトリ名から取ってきました)

実現したいこと

アプリから自分が端末にインストールしたファイラーを起動してディレクトリを選択できるようにしたい。

補足情報(FW/ツールのバージョンなど)

android
端末バージョン 11
compileSdk 33
minSdk 30
targetSdk 33

コメントを投稿

0 コメント