آموزش RuntimePermission در برنامه نویسی کوتلین
سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش RuntimePermission در برنامه نویسی کوتلین می پردازیم قبلا آموزش RunTimePermission در اندروید را برای شما قرار دادیم امروز نحوه استفاده از آن را در زبان برنامه نویسی کوتلین خواهیم گفت در ادامه با ما همراه باشید.
در کل ما دو نوع دسترسی داریم که عبارتند از :
دسترسی های عادی یا NORMAL PERMISSION : این نوع دسترسی ها توسط RunTimePermission بررسی نمی شوند یعنی فقط کافی است تگ آنها را در Manifest تنظیم کنیم و با کاربر در ارتباط نیست.
دسترسی خطرناک یا DANGEROUS PERMISSION : این نوع دسترسی ها در Api های بالا باید توسط RunTimePermission بررسی شود و با این نوع دسترسی ها می توانیم اطلاعات مهم کاربری را دریافت کنید به همین علت جزو دسترسی های خطرناک محسوب می شود و با کاربر در ارتباط است.
ابتدا در AndroidManifest.xml دسترسی زیر را اضافه کنید.
1 | <uses-permission android:name="android.permission.RECORD_AUDIO" /> |
سپس در بخش اکتیویتی از نوع کوتلین کد زیر را قرار میدهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | package ir.programchi import android.support.v4.app.ActivityCompat import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.Manifest import android.content.pm.PackageManager import android.support.v4.content.ContextCompat import android.util.Log class PermissionDemoActivity : AppCompatActivity() { private val TAG = "PermissionDemo" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_permission_demo) setupPermissions() } private fun setupPermissions() { val permission = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) if (permission != PackageManager.PERMISSION_GRANTED) { Log.i(TAG, "Permission to record denied") } } } |
اگر یادتان باشد در اکتیویتی از نوع کونلین یک متود به نام onRequestPermissionsResult داشتیم و می توانستیم یک requestcode را بررسی کنیم در اینجا نیز می توانیم آن را همانند زیر گسترش دهیم.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package com.ebookfrenzy.permissiondemo import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.Manifest import android.content.pm.PackageManager import android.support.v4.content.ContextCompat import android.util.Log import android.support.v4.app.ActivityCompat class PermissionDemoActivity : AppCompatActivity() { private val TAG = "PermissionDemo" private val RECORD_REQUEST_CODE = 101 . . private fun setupPermissions() { val permission = ContextCompat.checkSelfPermission(this, Manifest.permission.RECORD_AUDIO) if (permission != PackageManager.PERMISSION_GRANTED) { Log.i(TAG, "Permission to record denied") makeRequest() } } private fun makeRequest() { ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.RECORD_AUDIO), RECORD_REQUEST_CODE) } override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<String>, grantResults: IntArray) { when (requestCode) { RECORD_REQUEST_CODE -> { if (grantResults.isEmpty() || grantResults[0] != PackageManager.PERMISSION_GRANTED) { Log.i(TAG, "Permission has been denied by user") } else { Log.i(TAG, "Permission has been granted by user") } } } } } |
موفق و پیروز باشید.