Normal PermissionとDangerous Permissionとは?
違いと使い方を紹介しちゃいます。
まずPermissionとあるようにこの二の共通点は権限です。
Normal Permission(通常の権限)
通常の権限で、アプリが一般的な操作を実行するために必要な権限です。
しかし、個人情報やデバイス機能へのアクセス権には関与しません。
アプリがインストールされるときに自動でインストールされるため、ユーザーが権限操作をすることはありません。
例としては、以下が挙げられます。
INTERNET
ACCESS_NETWORK_STATE
Dangerous Permission(危険な権限)
危険な権限とは、ユーザーのプライバシーやデバイスの重要な機能にアクセスするために必要な権限です。
このような権限は、ユーザーによる明示的な許可が必要です。
たまに、アプリを開く前に、ダイアログが表示されて許可を聞いてきますよね。
例としては、以下が挙げられます。
READ_CONTACTS
CAMERA
Dangerous Permissionの使い方
①マニフェストに許可したい権限を登録
# カメラの許可
<uses-permission android:name="android.permission.CAMERA" />
②許可を確認するメソッドを用意する
今回は、MainActivityのonCreateに設定します。
// カメラ権限があるかチェック
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED) {
// 権限が許可されている場合の処理
initializeCamera()
} else {
// 権限が許可されていない場合、ユーザーに許可を求める
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.CAMERA), CAMERA_PERMISSION_REQUEST_CODE)
}
Permissionの許可の結果次第で処理がonRequestPermissionsResultで変わる
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
CAMERA_PERMISSION_REQUEST_CODE -> {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// カメラ権限が許可された場合の処理
initializeCamera()
} else {
// カメラ権限が許可されなかった場合の処理
// ユーザーに通知などを行う
}
}
else -> super.onRequestPermissionsResult(requestCode, permissions, grantResults)
}
}