Androidの権限モデル
インストール時権限と実行時権限を理解します
「Androidの権限モデル」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
権限モデル
Androidでは、機密データや機能へのアクセスを権限で保護しています。アプリは必要な権限を宣言し、機密性の高い項目については実行時にユーザーへ許可を求める必要があります。
この2つのカテゴリを理解することが、正しく実装するための基本です。
マニフェストでの宣言
アプリが使用するすべての権限は、AndroidManifest.xmlで<uses-permission>タグを使って宣言する必要があります。これはどちらのカテゴリにも当てはまります。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />通常権限(インストール時)
通常権限は、プライバシーへのリスクがほとんどありません。システムによってインストール時に自動的に付与されるため、ユーザーに確認を求めることはありません。
INTERNETACCESS_NETWORK_STATEVIBRATE
宣言するだけで使用できます。
危険な権限(実行時)
危険な権限は、ユーザーの個人データやデバイスの機能を保護します。ユーザーは実行時に明示的に許可する必要があり、後から設定で取り消すこともできます。
CAMERAACCESS_FINE_LOCATIONREAD_CONTACTSRECORD_AUDIO
権限グループ
危険な権限はグループ(例: 位置情報、連絡先)に属します。システムのダイアログでは、生の権限名ではなく、グループについてユーザーにわかりやすく説明する1つのメッセージが表示されます。
実行時権限が存在する理由
Android 6.0より前は、ユーザーはインストール時にすべての権限を許可するか、まったく許可しないかのどちらかでした。実行時権限により、機能が実際に使用されるときだけ確認し、ユーザーがきめ細かく、取り消し可能な形で制御できるようになりました。
これにより、ユーザーは状況に応じたリクエストを確認できるため、信頼につながります。
すでに許可されているか確認する
保護された機能を使用する前に、必ず確認してください。ContextCompat.checkSelfPermissionは、現在その権限が許可されているかどうかを返します。
val granted = ContextCompat.checkSelfPermission(
context,
Manifest.permission.CAMERA
) == PackageManager.PERMISSION_GRANTED特殊な権限
通常権限にも標準的な危険な権限にも該当しない機能がいくつかあり、これらは特殊な権限と呼ばれます。ユーザーは専用のシステム設定画面で切り替えを有効にする必要があります。例として、"他のアプリの上に重ねて表示"や"すべてのファイルへのアクセス"があります。
APIレベルによる権限の変化
権限の分類と動作は変化していきます。たとえば、POST_NOTIFICATIONSが実行時権限になったのはAndroid 13からです。サポートするAPIレベルについては、必ずドキュメントを確認してください。
基本原則
権限があると決めつけてはいけません。手順は常に次のとおりです。
- マニフェストで宣言する
- 実行時に確認する
- 許可されていなければリクエストする
- 許可と拒否を適切に処理する
最小権限
本当に必要なものだけを宣言し、リクエストしてください。危険な権限を追加するたびにユーザーの信頼が低下し、Play Store のポリシーレビューが行われる可能性があります。この点については、プライバシーのレッスンで改めて説明します。
理解度チェック
権限モデルについての理解度を確認しましょう。
まとめ
Android の権限モデルについて学びました。
- すべての権限はマニフェストで宣言します
- 通常権限はインストール時に自動的に付与されます
- 危険な権限には実行時の明示的な同意が必要で、取り消すこともできます
- 使用する前に必ず確認します。一部の機能には特殊な権限が必要です
次は Compose での権限リクエストです。
よくある質問
「Androidの権限モデル」レッスンは無料ですか?
はい。「Androidの権限モデル」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「Androidの権限モデル」で何を学びますか?
インストール時権限と実行時権限を理解します ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Androidの権限モデル」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Androidの権限モデル
- Composeで権限を要求する
- 拒否と理由説明への対応
- プライバシーのベストプラクティス