【发布时间】:2021-10-07 03:32:09
【问题描述】:
我喜欢从存储中选择一个 pdf 文件。之后,它应该使用用户选择的 pdf 阅读器应用程序打开选择的 pdf 文件。我可以选择一个文件,但之后应用程序崩溃并抛出:
android.content.ActivityNotFoundException: No Activity found to handle Intent
我试过了:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main_menu)
btnTravels.setOnClickListener {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT)
//val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "application/pdf"
intent.addCategory(Intent.CATEGORY_OPENABLE)
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true)
startActivityForResult(intent, R.integer.request_code_pdf)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK) {
if (requestCode == R.integer.request_code_pdf) {
if (data != null) {
Log.i("gotresult", data.data.toString())
data.data?.also {uri ->
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(uri,"document/pdf")
intent.flags = Intent.FLAG_ACTIVITY_NO_HISTORY
startActivity(intent)
}
}
}
}
}
Log.i 向我展示了这一点。它看起来不像是文件名:
content://com.android.providers.downloads.documents/document/msf%3A462052
【问题讨论】:
标签: android kotlin pdf android-intent