Так что здесь я попытался реализовать вышеупомянутую функциональность, но мне удалось получить файлы изображений только через галерею, fileExplorer и фотографии Google, но я не могу найти способ сделать то же самое для сторонней библиотеки, такой какcamscanner или 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)
}
}
файл манифеста
<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"/>