import android.os.Environment
import android.provider.MediaStore
import android.util.Log
+import androidx.annotation.RequiresApi
import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCaptureException
import androidx.core.content.ContextCompat
import java.text.SimpleDateFormat
import java.util.*
+@RequiresApi(api = Build.VERSION_CODES.Q)
class ImageStoreExternal(private val context: FragmentActivity) : IImageStore
{
private fun getExternalOutputDirectory(): File
package jp.osdn.gokigen.mangle.operation.imagefile
import android.content.ContentValues
-import android.database.DatabaseUtils
import android.os.Environment
import android.provider.MediaStore
import android.util.Log
resolver.update(imageUri, values, null, null)
/////////////////////////////
- val cursor = resolver.query(imageUri, null, null, null, null)
- DatabaseUtils.dumpCursor(cursor)
- cursor!!.close()
+ //val cursor = resolver.query(imageUri, null, null, null, null)
+ //DatabaseUtils.dumpCursor(cursor)
+ //cursor!!.close()
/////////////////////////////
val openStream = resolver.openOutputStream(imageUri) ?: return (false)
class ImageStoreLocal(private val context: FragmentActivity)
{
- init
- {
-
- }
-
/**
* 保存用ディレクトリを準備する(ダメな場合はアプリ領域のディレクトリを確保する)
*
return
}
Log.v(TAG, " takePhotoLocal()")
- val photoFile = File(prepareLocalOutputDirectory(), "P" + SimpleDateFormat(FILENAME_FORMAT, Locale.US).format(System.currentTimeMillis()) + ".jpg")
- val outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).build()
-
- imageCapture.takePicture(
- outputOptions,
- ContextCompat.getMainExecutor(context),
- object : ImageCapture.OnImageSavedCallback
- {
- override fun onError(exc: ImageCaptureException)
+ try
+ {
+ val photoFile = File(prepareLocalOutputDirectory(), "P" + SimpleDateFormat(FILENAME_FORMAT, Locale.US).format(System.currentTimeMillis()) + ".jpg")
+ val outputOptions = ImageCapture.OutputFileOptions.Builder(photoFile).build()
+ imageCapture.takePicture(
+ outputOptions,
+ ContextCompat.getMainExecutor(context),
+ object : ImageCapture.OnImageSavedCallback
{
- Log.e(TAG, "Photo capture failed: ${exc.message}", exc)
- }
+ override fun onError(exc: ImageCaptureException)
+ {
+ Log.e(TAG, "Photo capture failed: ${exc.message}", exc)
+ }
- override fun onImageSaved(output: ImageCapture.OutputFileResults)
- {
- val savedUri = Uri.fromFile(photoFile)
- val msg = context.getString(R.string.capture_success) + " $savedUri"
- Snackbar.make(context.findViewById<ConstraintLayout>(R.id.main_layout), msg, Snackbar.LENGTH_SHORT).show()
- Log.v(TAG, msg)
+ override fun onImageSaved(output: ImageCapture.OutputFileResults)
+ {
+ val savedUri = Uri.fromFile(photoFile)
+ val msg = context.getString(R.string.capture_success) + " $savedUri"
+ Snackbar.make(context.findViewById<ConstraintLayout>(R.id.main_layout), msg, Snackbar.LENGTH_SHORT).show()
+ Log.v(TAG, msg)
+ }
}
- }
- )
+ )
+ }
+ catch (e : Exception)
+ {
+ e.printStackTrace()
+ }
}
companion object
private val TAG = this.toString()
private const val FILENAME_FORMAT = "yyyyMMdd_HHmmss"
}
-
}
\ No newline at end of file