android:안드로이드에서_file_chooser_만들기
안드로이드에서 file chooser 만들기
1. GetContent() 로 만들기
가. 파일 대화 상자 불러 오기
다음 함수가 파일을 대화상자를 불러오는 함수이다.
val pickPictureLauncher = rememberLauncherForActivityResult( ActivityResultContracts.GetContent()) { hwpUri -> if (hwpUri != null) { // Update the state with the Uri } }
나. 호출하기
다음의 방식으로 호출한다.
pickPictureLauncher.launch("image/*")
2. 문서를 불러오기
문서는 OpenDocument()로 호출한다.
val pickPictureLauncher = rememberLauncherForActivityResult( ActivityResultContracts.OpenDocument()) { hwpUri -> if (hwpUri != null) { // Update the state with the Uri } }
3. 다양한 mime를 호출하기
다음과 같이 하면 GetContent()에 mime 제한자를 멀티플로 변경할 수 있다.
class GetContentWithMultiFilter:ActivityResultContracts.GetContent() { override fun createIntent(context: Context, input:String): Intent { val inputArray = input.split(";").toTypedArray() val myIntent = super.createIntent(context, arrayOf("*/*")) myIntent.putExtra(Intent.EXTRA_MIME_TYPES, inputArray) return myIntent } }
4. 실 사용례
다음은 실제 사용례이다.
val pickPictureLauncher = rememberLauncherForActivityResult( ActivityResultContracts.OpenDocument()) { hwpUri -> if (hwpUri != null) { // Update the state with the Uri name = hwpUri.path.toString() val file: File = File(hwpUri.getPath()) //create path from uri val split = file.path.split(":".toRegex()).dropLastWhile { it.isEmpty() } .toTypedArray() //split the path. fname = split[1] //assign it to a string(your choice). } } Column (modifier = modifier, horizontalAlignment = Alignment.CenterHorizontally){ Image(painter = painterResource(id = imageResource), contentDescription = result.toString()) Spacer(modifier = Modifier.height(16.dp)) Text(text = name, fontSize = 24.sp, modifier = Modifier .fillMaxWidth() .wrapContentWidth(align = Alignment.CenterHorizontally) .padding(top = 16.dp)) Text(text = fname, fontSize = 24.sp, modifier = Modifier .fillMaxWidth() .wrapContentWidth(align = Alignment.CenterHorizontally) .padding(top = 16.dp)) Button(onClick = { pickPictureLauncher.launch(arrayOf("application/msword", "application/pdf", "application/vnd.openxmlformats-officedocument.wordprocessingml.document")) } ) { Text(text = stringResource(R.string.fileopen)) } }
android/안드로이드에서_file_chooser_만들기.txt · 마지막으로 수정됨: 2023/08/03 23:33 저자 이거니맨
로그인