PermissionManager

필요 권한을 체크하고 요청한다.

constant

val perms: Array<String> = arrayOf(ACCESS_FINE_LOCATION, //0
                            WRITE_EXTERNAL_STORAGE, //1
                            READ_EXTERNAL_STORAGE, //2
                            CAMERA,//3
                            READ_CONTACTS, //4
                            READ_PHONE_STATE)  //5
val PERM_REQUEST_CODE: Int = 1000
val PERM_REQUEST_CODE_LOCATION: Int = 2000

getLocationCheckPermission

  • 위치권한이 승인되었는지 확인한다.

fun Context.getLocationCheckPermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[0])

    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

requestPermissionLocation

  • 런타임 위치권한을 요청한다.

fun Context.requestPermissionLocation(activity: Activity){
    ActivityCompat.requestPermissions(activity, arrayOf(ACCESS_FINE_LOCATION), PERM_REQUEST_CODE_LOCATION) //default 전체 퍼미션 요청
}

getWriteCheckPermission

  • 저장소 쓰기권한이 승인되었는지 확인한다.

fun Context.getWriteCheckPermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[1])
    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

getReadCheckPermission

  • 저장소 읽기 권한이 승인되었는지 확인한다.

fun Context.getReadCheckPermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[2])
    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

getCameraPermission

  • 카메라권한이 승인되었는지 체크한다

fun Context.getCameraPermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[3])
    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

getContactPermission

  • 연락처 권한이 승인되었는지 체크한다.

fun Context.getContactPermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[4])
    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

getPhoneStatePermission

  • 기기 상태 접근 권한이 승인되었는지 체크한다.

fun Context.getPhoneStatePermission() : Boolean{
    val result1:Int = ContextCompat.checkSelfPermission(this, perms[5])
    if (result1 == PackageManager.PERMISSION_GRANTED) {
        return true
    }
    return false
}

requestPermission

  • 런타임 권한을 요청한다.

fun Context.requestPermission(activity: Activity){
    ActivityCompat.requestPermissions(activity, perms, PERM_REQUEST_CODE) //default 전체 퍼미션 요청
}

Last updated

Was this helpful?