Как жестко закодировать тип файла при его создании с помощью ActivityResultContracts.createDocument()?

#android #kotlin

#Android #котлин

Вопрос:

Я создаю файл с помощью

 private val getContent = registerForActivityResult(ActivityResultContracts.CreateDocument()) { uri -gt;  uri?.let { writeToFile(requireActivity(), it) }  }  

а затем запустите его:

 getContent.launch("file.csv")  

поэтому, когда я нахожусь в лаунчере, я могу переименовать файл перед сохранением, а также изменить тип файла, чего я не ожидал. Итак, могу ли я позволить пользователю изменить имя, но не этот тип?

Ответ №1:

 private val startForResult = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result: ActivityResult -gt;  if (result.resultCode == Activity.RESULT_OK) {  // make action  }  }  private fun createFile() {  val intent = Intent(Intent.ACTION_CREATE_DOCUMENT)  intent.addCategory(Intent.CATEGORY_OPENABLE)  intent.type = "image/png"  intent.putExtra(Intent.EXTRA_TITLE, "AA.png")  startForResult.launch(intent) }