안드로이드/권한
안드로이드 권한 다시 뭍지 않음 일때
김어찐
2024. 3. 22. 11:03
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