Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

Normal PermissionとDangerous Permission とは?

Posted at

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)
        }
    }
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?