はじめに
DreamHanksのMOONです。
前回は「TimePickerDialog」について説明をしました。
15. 【Android/Kotlin】TimePickerDialog
今回は「Permission」について説明していきます。
Permissionとは
AndroidのPermissionはカメラ、写真、機器情報などについてアクセスするための権限です。
みんなさんがいろんなアプリを使ったときに下のダイアログを見たことがあると思います。
この形式のダイアログでアプリの利用者からアクセス権限を取得します。
今回は写真やメディアのアクセス権限を取得していきます。
Permission設定
AndroidManifestにパーミッション追加
AndroidManifest.xmlに下記のコードを追加
1 |
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> |
1 2 3 4 5 6 7 |
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.practiceapplication"> ..... ..... <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> </manifest> |
Activityを作成
PermissionActivity.kt
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
package com.example.practiceapplication import android.Manifest import android.content.pm.PackageManager import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast import androidx.core.app.ActivityCompat import androidx.core.content.ContextCompat class PermissionActivity : AppCompatActivity() { private val RECORD_REQUEST_CODE = 1000 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setupPermissions() } //パーミッションのチェックを設定するためのメソッド private fun setupPermissions() { val permission = ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) if (permission != PackageManager.PERMISSION_GRANTED) { makeRequest() } } //パーミッションをリクエストするためのメソッド private fun makeRequest() { ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 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) { Toast.makeText(applicationContext, "デバイス内の写真やメディアへのアクセスが許可されませんでした。", Toast.LENGTH_SHORT).show() }else{ Toast.makeText(applicationContext, "デバイス内の写真やメディアへのアクセスが許可されました。", Toast.LENGTH_SHORT).show() } return } } } } |
①パーミッションのチェックを設定するためのメソッド作成
②「checkSelfPermission」メソッドを呼び出す
③パーミッションの許可の結果による実行されるメソッド作成
アプリ起動
・アプリを起動した場合
・許可をクリックした場合(許可確認のToastメッセージが表示)
・アプリ情報で権限確認(ストレージが許可されています。)
・許可しないボタンをクリックした場合
・アプリ情報で権限確認(ストレージが許可されていないです。)
終わりに
今回は「Permission」について説明しました。
次回はギャラリーから写真を取得していきます。
コメント