Код: Выделить всё
private fun openCamera() {
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
val folderCache = File(cacheDir, "images")
if (!folderCache.exists()) {
folderCache.mkdirs()
}
try {
// Tạo file tạm thời để lưu ảnh
mPhotoFile = File.createTempFile(
System.currentTimeMillis().toString(),
".png",
folderCache
)
// Tạo Uri từ file với FileProvider
mUri = mPhotoFile?.let { file ->
FileProvider.getUriForFile(
this,
"${BuildConfig.APPLICATION_ID}.fileprovider",
file
)
}
// Kiểm tra mUri có null không, sau đó gọi mTakePhoto
mUri?.let { uri ->
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri)
// Cấp quyền ghi tạm thời cho ứng dụng máy ảnh
takePictureIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
takePictureIntentLauncher.launch(takePictureIntent)
}
} catch (e: IOException) {
e.printStackTrace()
Toast.makeText(this, "Error creating file", Toast.LENGTH_SHORT).show()
}
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... mi-note-10