본문 바로가기

Dead Code/DEPRECATED-KOTLIN

[코틀린코드연습장] Permissions.





내가 과연 permission을 사용하는 앱까지 만들어 볼수 있을까?


심란하구만 











[Manifest.xml]

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>


[main.kt]


class MainActivity : AppCompatActivity() {

var pm = arrayOf(
Manifest.permission.SEND_SMS,
Manifest.permission.RECEIVE_SMS,
Manifest.permission.INTERNET,
Manifest.permission.WRITE_CONTACTS,
Manifest.permission.READ_CONTACTS,
Manifest.permission.ACCESS_COARSE_LOCATION,
Manifest.permission.ACCESS_FINE_LOCATION
)

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

permissions()

}


fun permissions() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M){
return
}

for (permisson in pm) {

var chk = checkCallingOrSelfPermission(permisson)

if (chk == PackageManager.PERMISSION_DENIED) {
requestPermissions(pm, 0)
break
}

}
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)

var idx = 0

txt.text = ""

for (idx in permissions.indices){
if (grantResults[idx] == PackageManager.PERMISSION_GRANTED) {
txt.append("${pm[idx]} : Granted\n")
}else{
txt.append("${pm[idx]} : Denied\n")
}
}
idx++

}


}