На основе документации, используемой для настройки вашего приложения в качестве платформы для обмена медиафайлами. , как мне сохранить фактический файл, а не его исходное расположение URI, используя FileProvider, хотя мне уже был предоставлен URI из Intent? Например, если мне нужна строка URI «content: //com.android.sample.fileprovider/my_images/JPEG_20180315_162048_-1397281749.jpg». Потому что сейчас я получаю «content: // media / external / images / media / 142607» со следующим кодом:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_media)
val intent = intent
val action = intent.action
val type = intent.type
type?.let {
when (action) {
Intent.ACTION_SEND -> {
if (it == getString(R.string.mime_type_text)) {
handleSendText(intent)
} else if (it.startsWith(getString(R.string.mime_type_image_any))) {
handleSendImage(intent)
}
}
}
}
private fun handleSendImage(intent: Intent?) {
val imageUri = intent?.getParcelableExtra<Uri>(Intent.EXTRA_STREAM)
imageUri?.let {
// Logs "content://media/external/images/media/142607"
Log.d("tag", it.toString())
// Logs "/external/images/media/142607"
Log.d("tag", File(it.path).toString())
}
}