Добрый день, у меня есть приложение в Kotlin, которое делает фотографию, помещает ее в изображение и сохраняет ее на телефоне, но с последовательным именем, а не с тем, которое я помещаю, я прилагаю код, который Я использую, спасибо за вашу помощь, есть также кнопка, которая открывает галерею, чтобы поместить изображение в просмотр изображений, но это не проблема, есть предоставленные разрешения, а также манифест, так что если вы сохраните фотографию с последовательно это означает, что если у вас есть разрешения, спасибо:
private val REQUEST_CAMERA = 1002
var foto: Uri? = null
@RequiresApi(Build.VERSION_CODES.O)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
abreCamara_click()}
private fun abreCamara_click() {
btnCamara.setOnClickListener() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (checkSelfPermission(Manifest.permission.CAMERA) == PackageManager.PERMISSION_DENIED
|| checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED
) {
val permisosCamara = arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
requestPermissions(permisosCamara, REQUEST_CAMERA)
} else
abreCamara()
} else
abreCamara()
}
}
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
when(requestCode){
REQUEST_CAMERA -> {
if(grantResults[0] == PackageManager.PERMISSION_GRANTED)
abreCamara()
else
Toast.makeText(applicationContext,"No se puede acceder a la cámara", Toast.LENGTH_SHORT).show()
}
}
}
private fun abreCamara(){
val value = ContentValues()
value.put(MediaStore.Images.Media.TITLE,"Nueva imagen")
foto = contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, value)
val camaraIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
camaraIntent.putExtra(MediaStore. EXTRA_OUTPUT,foto)
startActivityForResult(camaraIntent,REQUEST_CAMERA)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if(resultCode==Activity.RESULT_OK && requestCode == REQUEST_CAMERA){
imgFoto.setImageURI(foto)
}
}