Androidのスマートフォンに保存しているファイルをGUIで選ぶ
Windowsのファイルを開くダイアログのように、Androidのスマートフォンに保存しているファイルをGUIで選ぶには、暗黙的インテントを使って対応する Activity を起動します。
startActivity() や startActivityForResult() を実行する前に resolveActivityを使って暗黙的インテントを受け取るアプリが存在するか確認することでアプリのクラッシュを防ぐことができます。
インテントの例
int ID_OPEN = 1000; val intent = Intent(Intent.ACTION_OPEN_DOCUMENT) intent.setType("*/*") intent.addCategory(Intent.CATEGORY_OPENABLE) if (intent.resolveActivity(packageManager) != null) { startActivityForResult(Intent.createChooser(intent, "title"), ID_OPEN) }
ファイルを選択するとonActivityResultが呼び出されます。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) when (requestCode) { ID_OPEN -> { if ((resultCode == RESULT_OK) && (data != null)) { val uri = data.data if (uri != null) { onSelectFile(uri) } } } } }
より詳しい情報はこちら