Мое приложение автоматически вылетает, когда я запускаю камеру для съемки на Redmi 7A. Ниже приведены журналы сбоев: [code] E/CAM_CameraIntentManager: checkCallerLegality: Unknown caller: com.qikcircle.eclinic [/code] Пожалуйста, помогите, на самом деле не показано, в чем именно проблема. Мой код активности [code]class CaptureImageActivity : AppCompatActivity() {
private lateinit var mToolbar: Toolbar private lateinit var mImage: ImageView private var mBitmap: Bitmap? = null
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) } } } [/code] [b]Кроме того, приложение вылетает не каждый раз, а только несколько раз.[/b]