主要代码
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener { applyPermissionAndOpenAlbum() }
}
private fun applyPermissionAndOpenAlbum() {
SoulPermission.getInstance()
.checkAndRequestPermissions(
Permissions.build(
Manifest.permission.CAMERA,
Manifest.permission.WRITE_EXTERNAL_STORAGE
),
object : CheckRequestPermissionsListener {
override fun onAllPermissionOk(allPermissions: Array<out Permission>?) {
openAlbum()
}
override fun onPermissionDenied(refusedPermissions: Array<out Permission>?) {
}
})
}
private fun openAlbum() {
val intent = Intent()
intent.action = Intent.ACTION_PICK
intent.type = "image/*"
startActivityForResult(intent, 2)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
val photoPath: String?
if (requestCode == 2 && resultCode == RESULT_OK) {
data?.data?.let {
photoPath = UriUtil.getRealPathFromUri(this, it)
Glide.with(this).load(photoPath).into(imageView)
}
}
super.onActivityResult(requestCode, resultCode, data)
}
}