選擇檔案(不需要權限):
選擇檔案並讀取檔案內容:
使用方式:
@Composable
fun SelectFile(modifier: Modifier = Modifier){
val filePickerLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val uri = result.data?.data
Log.i(TAG, "SelectFile: 選擇的檔案 URI: $uri")
}
}
Button(onClick = {
val intent = Intent(Intent.ACTION_GET_CONTENT).apply {
type = "*/*"
addCategory(Intent.CATEGORY_OPENABLE)
}
filePickerLauncher.launch(intent)
}) {
Text(
text = "Select File",
modifier = modifier
)
}
}
選擇檔案並讀取檔案內容:
@Composable
fun SelectFile(context: Context, modifier: Modifier = Modifier) {
val filePickerLauncher = rememberLauncherForActivityResult(
contract = ActivityResultContracts.StartActivityForResult()
) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val uri = result.data?.data
Log.i(TAG, "SelectFile: 選擇的檔案 URI: $uri")
val content = uri?.let { readTextFromUri(context, it) }
Log.i(TAG, "SelectFile: 選擇的檔案內容: $content")
}
}
Button(onClick = {
val intent = Intent(Intent.ACTION_GET_CONTENT).apply {
type = "*/*"
addCategory(Intent.CATEGORY_OPENABLE)
}
filePickerLauncher.launch(intent)
}) {
Text(
text = "Select File",
modifier = modifier
// 高度 50dp
.height(50.dp)
)
}
}
使用方式:
SelectFile(context = this@MainActivity)
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com