3

Android の新しい API バージョン (API 23) では、実行時にパーミッションを要求する必要があります。要求された許可がアプリレベルなのかアクティビティなのか、非常に基本的な疑問があります。このドキュメントによると、その権限が必要な操作を実行するたびに、その権限があるかどうかを確認する必要があります。これは、許可はアプリ レベルで付与されているが、そのチェックはアクティビティ レベルで行うように提案されているということですか? また、許可のチェックは次のように行うことが提案されています。

// Assume thisActivity is the current activity
int permissionCheck = ContextCompat.checkSelfPermission(thisActivity,
        Manifest.permission.WRITE_CALENDAR);

ここでは、アクティビティのコンテキストを渡すことによってパーミッションのチェックが行われていることが明確にわかります。与えられたアクセス許可がアプリ レベルである場合、なぜアプリケーション コンテキストではなくアクティビティ コンテキストが必要なのですか? (ただし、メソッドがアクティビティ コンテキストからアプリケーション コンテキストを内部的に取得する可能性はあります)。

4

1 に答える 1

4

要求された権限がアプリ レベルまたはアクティビティの場合

Android のすべての権限は、アプリ全体に対するものです。

これは、許可はアプリ レベルで付与されているが、そのチェックはアクティビティ レベルで行うように提案されているということですか?

権限があるかどうかの確認は、 経由でどこでも実行できますcheckSelfPermission()ユーザーからの許可のリクエストは、 を介してアクティビティから行う必要がありますrequestPermissions()。結果の権限付与は、アプリ全体に適用されます。

与えられたアクセス許可がアプリ レベルである場合、なぜアプリケーション コンテキストではなく、アクティビティ コンテキストが必要なのですか?

メソッドにはどれでもContext機能しContextCompatます。

于 2015-12-26T14:13:06.307 に答える