728x90
private fun requestAddressPermission(trigger: PublishSubject<Address>){
val permissionListener = object : PermissionListener {
override fun onPermissionGranted() {
// 권한이 허용됨
moveSearchContact(trigger)
}
@SuppressLint("CheckResult")
override fun onPermissionDenied(deniedPermissions: java.util.ArrayList<String>) {
// 다시 묻지않음 상태
if (deniedPermissions.contains(Manifest.permission.READ_CONTACTS) && !ActivityCompat.shouldShowRequestPermissionRationale(requireActivity(), Manifest.permission.READ_CONTACTS)) {
// 시스템 셋팅 팝업
val permissionPopUp = RxButtonDialog(RxButtonDialog.Builder(requireActivity(),
requireActivity().resources.getString(R.string.address_permission_guide2),
requireActivity().getString(R.string.setting_do),
requireActivity().getString(R.string.close), false)
)
permissionPopUp.show()
.subscribe(
{
// 시스템 권한 팝업
if (it) {
// 안드로이드 설정으로 가기
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
val uri = Uri.fromParts(
"package",
BuildConfig.APPLICATION_ID,
null)
intent.data = uri
startActivity(intent)
}
},
{},
{},
)
}
}
}
TedPermission.with(requireContext())
.setPermissionListener(permissionListener)
.setPermissions(Manifest.permission.READ_CONTACTS)
.check()
}
728x90
'안드로이드 > 권한' 카테고리의 다른 글
TedPermission 보일러 플레이트 코드 (0) | 2023.03.28 |
---|---|
ActivityResultContracts 를 이용한 권한 체크 (0) | 2022.10.03 |
안드로이드 권한 (0) | 2022.06.08 |