Приложение вылетает при запуске камеры для съемки на Redmi 7AAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Приложение вылетает при запуске камеры для съемки на Redmi 7A

Сообщение Anonymous »

Мое приложение автоматически вылетает, когда я запускаю камеру для съемки на Redmi 7A. Ниже приведены журналы сбоев:

Код: Выделить всё

   E/CAM_CameraIntentManager: checkCallerLegality: Unknown caller: com.qikcircle.eclinic
Пожалуйста, помогите, на самом деле не показано, в чем именно проблема.
Мой код активности

Код: Выделить всё

class CaptureImageActivity : AppCompatActivity() {

private lateinit var mToolbar: Toolbar
private lateinit var mImage: ImageView
private var mBitmap: Bitmap? = null

private val getCameraAndStoragePermission = registerForActivityResult(
ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
if (hasAllPermissionsGranted(permissions)) {
dispatchTakePictureIntent()
} else {
Toast.makeText(
this,
resources.getString(R.string.allow_camera_permission),
Toast.LENGTH_SHORT)
.show()
finish()
}
}

private val takePicture =
registerForActivityResult(ActivityResultContracts.TakePicture()) { success ->
if (success) {
photoURI.let {
mBitmap = getBitmap(this, photoURI)
mImage.setImageBitmap(mBitmap)
goBack()
}
} else {
Toast.makeText(
this,
resources.getString(R.string.something_went_wrong),
Toast.LENGTH_SHORT)
.show()
finish()
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_capture_image)

setupToolbar()

mImage = findViewById(R.id.image)
val mSend = findViewById(R.id.send)
mSend.setOnClickListener {
goBack()
}

checkCameraPermission()
}

private fun setupToolbar() {
mToolbar = findViewById(R.id.toolbar)
val title: TextView = findViewById(R.id.title)
title.text = resources.getString(R.string.app_name)
setSupportActionBar(mToolbar)
showBackButton()
}

private fun showBackButton() {
if (supportActionBar != null) {
supportActionBar!!.setDisplayHomeAsUpEnabled(true)
supportActionBar!!.setDisplayShowHomeEnabled(true)
}
mToolbar.setNavigationOnClickListener {
super.onBackPressed()
}
}

private fun checkCameraPermission() {
val permissions = arrayOf(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
)
if (!hasPermissions(this, *permissions)) {
getCameraAndStoragePermission.launch(permissions)
return
}
dispatchTakePictureIntent()
}

private fun goBack() {
val intent = Intent()
intent.data = photoURI
setResult(Activity.RESULT_OK, intent)
finish()
}

private lateinit var currentPhotoPath: String

@Throws(IOException::class)
private fun createImageFile(): File {
// Create an image file name
val timeStamp: String = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(Date())
val storageDir: File? = getExternalFilesDir(Environment.DIRECTORY_PICTURES)
return File.createTempFile(
"JPEG_${timeStamp}_", /* prefix */
".jpg", /* suffix */
storageDir /* directory */
).apply {
// Save a file: path for use with ACTION_VIEW intents
currentPhotoPath = absolutePath
}
}

private lateinit var photoURI: Uri

private fun dispatchTakePictureIntent() {
val photoFile: File? = try {
createImageFile()
} catch (ex:  IOException) {
// Error occurred while creating the File
null
}
// Continue only if the File was successfully created
photoFile?.also {
photoURI = FileProvider.getUriForFile(
this,
"com.qikcircle.eclinic.fileprovider",
it
)
takePicture.launch(photoURI)
}
}
}
Кроме того, приложение вылетает не каждый раз, а только несколько раз.

Подробнее здесь: https://stackoverflow.com/questions/631 ... n-redmi-7a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»