Así que aquí intenté implementar la funcionalidad anterior, pero solo logré obtener archivos de imagen solo a través de la galería, FileExplorer y Google Photos, pero no puedo encontrar una manera de hacer lo mismo para una biblioteca de terceros como camscanner u officeLens
private val IMAGE_PICK_CODE = 1000; private val PERMISSION_CODE = 1001; fab.setOnClickListener { view -> if (VERSION.SDK_INT >= VERSION_CODES.M){ if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_DENIED){ val permissions = arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE); requestPermissions(permissions, PERMISSION_CODE); } else{ pickImageFromGallery(); } } else{ pickImageFromGallery(); } } } private fun pickImageFromGallery() { val intent = Intent(Intent.ACTION_PICK) intent.type = "image/*" startActivityForResult(intent, IMAGE_PICK_CODE) } // override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) { when(requestCode){ PERMISSION_CODE -> { if (grantResults.size >0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ //permission from popup granted pickImageFromGallery() } else{ //permission from popup denied Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show() } } } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (resultCode == Activity.RESULT_OK && requestCode == IMAGE_PICK_CODE){ imageView.setImageURI(data?.data) } }archivo de manifiesto
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA"/>