Я пытаюсь сделать снимок с камеры в Android и хочу сохранить его с пользовательским именем файла, используя UUID (например: f12b5700-1d92-11e9-ab14-d663bd873d93.jpg).
В следующем коде в onActivityResult
я получаю f12b5700-1d92-11e9-ab14-d663bd873d93.jpg в photoPath, но когда я проверяю фактическое изображение на устройстве, оно сохраняется как timestamp.jpg (например, 1548082653944.jpg). У меня вопрос, как я могу сделать изображение для сохранения с произвольным именем?
private var photoURI: Uri? = null
private fun takePhoto()
{
val values = ContentValues()
values.put(MediaStore.Images.Media.TITLE, UUID.randomUUID().toString() + ".jpg")
photoURI = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values)
val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (intent.resolveActivity(packageManager) != null)
{
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI)
startActivityForResult(intent, PHOTO_REQUEST_CODE);
}
}
в обработчике onActivityResult код выглядит следующим образом:
if (requestCode == PHOTO_REQUEST_CODE)
{
if (resultCode == Activity.RESULT_OK)
{
val proj = arrayOf(MediaStore.Images.Media.TITLE)
val cursor = contentResolver.query(photoURI!!, proj, null, null, null)
val index = cursor!!.getColumnIndex(MediaStore.Images.Media.TITLE)
cursor.moveToFirst()
photoPath = cursor.getString(index)
cursor.close()
Toast.makeText(this, photoPath, Toast.LENGTH_LONG).show()
}
else
{
capturedImage.setImageURI(null)
Toast.makeText(this, "Photo was not taken", Toast.LENGTH_SHORT).show()
}
}