web-dev-qa-db-ja.com

uses-permission-sdk-23とuses-permissionの違いは何ですか?

Androidマニフェストファイルと呼ばれる "ses-permission-sdk-2"で新しいタグを知った

<uses-permission-sdk-23 Android:name="Android.permission.CAMERA" />
<uses-permission Android:name="Android.permission.CAMERA" />

誰かがこの2つの違いを教えてくれますか?

23

SDKバージョン23以降のデバイスでアプリが実行されている場合。デバイスがSDKバージョン22以下を実行している場合

アプリを更新して、追加の権限が必要な新機能を含めるとき。ユーザーがSDKバージョン22以下を実行しているデバイスでアプリを更新すると、システムはインストール時にユーザーにその更新で宣言されているすべての新しい権限を付与するように求めます。新しい機能が十分に重要でない場合は、それらのデバイスで機能を完全に無効にすることをお勧めします。これにより、ユーザーはアプリを更新するために追加の権限を付与する必要がなくなります。 uses-permissionの代わりにuses-permission-sdk-23要素を使用する

実行時のアクセス許可モデルをサポートするプラットフォームでアプリが実行されている場合にのみ、アクセス許可を要求できます。実行時のアクセス許可モデルでは、実行中にユーザーがアプリにアクセス許可を付与します。

詳細については、これを参照してください。 使用-許可SDK 2

6
Vishal Thakkar

概要

<uses-permission>はすべてのSDKに適用され、<uses-permission-sdk-23>はSDK 23以降にのみ権限を適用します。

<uses-permission-sdk-23>はいつ使用する必要がありますか?

  • Android SDK 23以上の場合、実行時に権限をリクエストするオプションがありますが、権限はインストール時のデフォルトの状態であり、ユーザーはインストール時にプロンプ​​トを表示されません(これは基本的に、ユーザーに使用の必要性に基づいて許可を与えるように促すために使用でき、必要な理由の説明を提供する機会があります。)

  • ただし、SDK 22以前の場合、インストール時にユーザーは権限を要求されます。一部の権限はユーザーにとって疑わしい、または危険なように見える可能性があるため、事前にそれらが必要である理由の説明を提供できないため、SDK 22以下ではこれらをリクエストしたくない場合があるため、<uses-permission-sdk-23>タグ。

  • さらに:sdk-23権限によってもPlayストアでアプリがフィルタリングされるかどうかはドキュメントに記載されていませんが、これを行うために、ドキュメントでは、ハードウェアの互換性を宣言する代わりに<uses-feature>要素を使用することを推奨しています。

勧告

一般に、アプリがSDK 22以下をサポートする必要がない場合、またはリクエストしている権限がSDK 22以下では必要ない場合、<uses-permission-sdk-23>を使用することがベストプラクティスと見なされます。実行時に要求されます。

それ以外の場合は<uses-permission>を使用する必要があります。これは下位互換性があり、SDKのどのバージョンでも動作が正しいためです。 22以下では、インストール時に権限が要求されます。 23以降では、実行時にリクエストするかどうかはあなた次第です。

ユーザーがアプリへの信頼を確立していない可能性がある場合に、インストール時にアクセス許可のリストを表示するだけでなく、特定のアクセス許可が必要な理由をユーザーに説明できるため、可能な限り実行時にアクセス許可を要求する必要があります。

ノート

これらはどちらもmaxSdkVersion属性を受け入れます。この属性は、古いデバイスに権限が必要であった場合に使用できますが、新しいデバイスには必要ありません。 (たとえば、Androidのドキュメントに示されているWRITE_EXTERNAL_STORAGEの例。)

リファレンス: (Android Documentation)

8
SamJakob

<uses-permission-sdk-23>要素の代わりに<uses-permission>、アプリが実行中にアプリに権限を付与するランタイム権限モデルをサポートするプラットフォームでアプリが実行されている場合にのみ、権限をリクエストできます。

これは導入されましたMarshmallowのランタイム許可機能をサポートする(API-23)以降。

これは、アプリが特定の権限を必要とすることを指定するだけですが、アプリがSDKバージョン23以降のデバイスで実行されている場合に限られます。デバイスがSDKバージョン22以下を実行している場合、アプリには指定された権限がありません。この要素は、追加の権限を必要とする新機能を含めるようにアプリを更新するときに役立ちます。ユーザーがSDKバージョン22以下を実行しているデバイスでアプリを更新すると、システムはインストール時にユーザーに、その更新で宣言されているすべての新しい権限を付与するように求めます。

documentation を参照してください。

4
srv_sud

アプリが特定の権限を必要とすることを指定しますが、アプリがAPIレベル23以上のデバイスで実行されている場合のみです。デバイスがAPIレベル22以下を実行している場合、アプリには指定された権限がありません。

1
Xander.Wang

user-permission-sdk-23は、特定の権限を必要とするアプリがSDKバージョン23以降で実行されていることを指定します。アプリを更新してSDK 23要素を実行し、ユーザーが新しい要素をサポートしない下位のAPIを実行するときに使用されます。

Androidマニフェスト-ユーザー権限

1
DownForNow

ドキュメントを参照してください 使用権限

使用する

<uses-permission-sdk23>

マシュマロデバイスのみに権限を適用する。

0
Bajirao Shinde