Я хочу получить фотографию с моим приложением Android и поместить ее в пользовательскую папку, она создается, однако она создает копию в папке "... DCIM / Camera". Мне не нужна дополнительная копия.
Я беру базу из https://developer.android.com/training/camera/photobasics
Это не происходит в эмуляторах, версия телефона, которую я пробовал : LG-Q & Andorid: 8.1.0
Код:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
image = photo_image_v
image.setOnClickListener {
dispatchTakePictureIntent("sample", "sample")
}
}
private fun dispatchTakePictureIntent(name: String, path: String) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && (ContextCompat.checkSelfPermission(
this,
Manifest.permission.CAMERA
) != PackageManager.PERMISSION_GRANTED)
) {
requestPermissions(arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION)
} else {
Intent(MediaStore.ACTION_IMAGE_CAPTURE).also {
if (it.resolveActivity(this.packageManager) != null) {
// Create the File where the photo should go
var file = createImageFile(name, this, path)
this@MainActivity.file = file
var uri = FileProvider.getUriForFile(
this@MainActivity,
BuildConfig.APPLICATION_ID + ".provider", file
)
Log.i(this::class.java.canonicalName, "The url to save: $uri")
it.putExtra(MediaStore.EXTRA_OUTPUT, uri)
this@MainActivity.startActivityForResult(it, CAMERA_PERMISSION)
}
}
}
}
private fun createImageFile(name: String, activity: Activity, imagePath: String): File {
// Create an image file name
var storageDir = File(activity.filesDir, "images/${imagePath}")
if (!storageDir.exists()) {
storageDir = File(activity.filesDir, "images/${imagePath}")
storageDir.mkdirs()
}
var file = File(storageDir, "${name}.png")
file.createNewFile()
Log.i(this::class.java.canonicalName, "Image created: ${file.exists()}")
return file
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == RESULT_OK) {
when (requestCode) {
CAMERA_PERMISSION -> {
//imageBitmap = data!!.extras!!.get(MediaStore.EXTRA_OUTPUT) as String
var photo = file.absolutePath
if (resultCode == Activity.RESULT_OK) {
Glide.with(this)
.load(photo)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(image)
}
}
}
}
}
Доказательства:
Изображение в папке желаний
Скопируйте изображение в нежелательной папке ![enter image description here](https://i.stack.imgur.com/rOAyw.jpg)