我正在尝试在android中打开文件选择器,选择一个json文件,然后从中获取文本。 我选择文件后,该应用程序崩溃,因为它找不到路径。
我尝试添加外部存储的读/写权限并更改路径格式
acos((trace(R)-1)/2)*180/pi
答案 0 :(得分:2)
我正在尝试在android中打开文件选择器
那不是文件选择器。这样一来,用户就可以选择一条内容,该内容可以是文件,也可以不是文件。
我选择文件后,应用程序崩溃了
您没有选择文件。您正在挑选内容。该内容由Uri
标识,并且您的Uri
的方案是content
,而不是file
。
使用ContentResolver
和openInputStream()
在InputStream
所标识的内容上获得Uri
。您可以在该readText()
上调用InputStream
以将其作为文本阅读。
答案 1 :(得分:0)
这是我最终的工作代码:
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
val path = data?.data
val jsonSelectedFile = contentResolver.openInputStream(path);
val inputAsString = jsonSelectedFile.bufferedReader().use { it.readText() }
Toast.makeText(this, "Json: " + inputAsString , Toast.LENGTH_LONG).show()
}
并致电:
importJsonButton.setOnClickListener {
val myFileIntent = Intent()
.setType("*/*")
.setAction(Intent.ACTION_GET_CONTENT)
startActivityForResult(myFileIntent,10)
}