uses-permission-sdk-23 和 uses-permission 之间的区别?
Difference Between uses-permission-sdk-23 and uses-permission?
我刚刚了解到 android 清单文件中的新标签,名为“uses-permission-sdk-23”
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
有人可以提供这两者之间的区别吗?
user-permission-sdk-23 指定需要特定权限的应用 运行ning 在 SDK 版本 23 或更高版本上。
当您将您的应用程序更新为 运行 SDK 23 元素并且用户 运行 宁一个不支持新元素的较低 API 时使用它。
查看文档
uses permission
使用
<uses-permission-sdk23>
仅为 Marshmallow 设备申请权限。
通过使用 <uses-permission-sdk-23>
元素而不是 <uses-permission>
,您可以仅在应用程序 运行 支持运行时权限模型的平台上请求权限,其中用户在 运行.
时授予应用程序权限
已引入此功能以支持 Marshmallow (API-23) 以后的运行时权限功能。
这只是指定某个应用需要特定权限,但前提是该应用 运行 在具有 SDK 版本 23 或更高版本的设备上。如果设备是 运行 SDK 版本 22 或更低版本,则该应用没有指定的权限。
当您更新应用程序以包含需要额外权限的新功能时,此元素很有用。如果用户在 运行 SDK 版本 22 或更低版本的设备上更新应用程序,系统会在安装时提示用户授予在该更新中声明的所有新权限。
您可以参考documentation。
如果应用 运行 在 SDK 版本 23 或更高版本的设备上运行。如果设备是 运行 SDK 版本 22 或更低版本
当您更新应用以包含需要额外权限的新功能时。如果用户在 运行 SDK 版本 22 或更低版本的设备上更新应用程序,系统会在安装时提示用户授予在该更新中声明的所有新权限。如果新功能足够小,您可能更愿意在这些设备上完全禁用该功能,这样用户就不必授予额外的权限来更新应用程序。通过使用 uses-permission-sdk-23 元素而不是 uses-permission
仅当应用程序在支持运行时权限模型的平台上 运行 时,您才可以请求权限,其中用户在应用程序处于 运行 时向其授予权限].
有关更多信息,请参阅此内容。uses - Permission sdk 23
指定某个应用需要特定权限,但前提是该应用 运行 在具有 API 级别 23 或更高级别的设备上。如果设备 运行 API 级别 22 或更低,应用程序没有指定的权限。
总结
<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及以上,由你在运行时请求。
You should request permissions at runtime wherever possible as it allows you to explain to your user why you need certain permissions rather than just prompting them with a list of permissions at install time when the user has likely not established trust in the app.
备注
这两个都接受 maxSdkVersion
属性,当旧设备需要权限但新设备不需要权限时可以使用该属性。 (例如,Android 文档中显示的 WRITE_EXTERNAL_STORAGE
示例。)
我刚刚了解到 android 清单文件中的新标签,名为“uses-permission-sdk-23”
<uses-permission-sdk-23 android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.CAMERA" />
有人可以提供这两者之间的区别吗?
user-permission-sdk-23 指定需要特定权限的应用 运行ning 在 SDK 版本 23 或更高版本上。 当您将您的应用程序更新为 运行 SDK 23 元素并且用户 运行 宁一个不支持新元素的较低 API 时使用它。
查看文档 uses permission
使用
<uses-permission-sdk23>
仅为 Marshmallow 设备申请权限。
通过使用 <uses-permission-sdk-23>
元素而不是 <uses-permission>
,您可以仅在应用程序 运行 支持运行时权限模型的平台上请求权限,其中用户在 运行.
已引入此功能以支持 Marshmallow (API-23) 以后的运行时权限功能。
这只是指定某个应用需要特定权限,但前提是该应用 运行 在具有 SDK 版本 23 或更高版本的设备上。如果设备是 运行 SDK 版本 22 或更低版本,则该应用没有指定的权限。 当您更新应用程序以包含需要额外权限的新功能时,此元素很有用。如果用户在 运行 SDK 版本 22 或更低版本的设备上更新应用程序,系统会在安装时提示用户授予在该更新中声明的所有新权限。
您可以参考documentation。
如果应用 运行 在 SDK 版本 23 或更高版本的设备上运行。如果设备是 运行 SDK 版本 22 或更低版本
当您更新应用以包含需要额外权限的新功能时。如果用户在 运行 SDK 版本 22 或更低版本的设备上更新应用程序,系统会在安装时提示用户授予在该更新中声明的所有新权限。如果新功能足够小,您可能更愿意在这些设备上完全禁用该功能,这样用户就不必授予额外的权限来更新应用程序。通过使用 uses-permission-sdk-23 元素而不是 uses-permission
仅当应用程序在支持运行时权限模型的平台上 运行 时,您才可以请求权限,其中用户在应用程序处于 运行 时向其授予权限].
有关更多信息,请参阅此内容。uses - Permission sdk 23
指定某个应用需要特定权限,但前提是该应用 运行 在具有 API 级别 23 或更高级别的设备上。如果设备 运行 API 级别 22 或更低,应用程序没有指定的权限。
总结
<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及以上,由你在运行时请求。
You should request permissions at runtime wherever possible as it allows you to explain to your user why you need certain permissions rather than just prompting them with a list of permissions at install time when the user has likely not established trust in the app.
备注
这两个都接受 maxSdkVersion
属性,当旧设备需要权限但新设备不需要权限时可以使用该属性。 (例如,Android 文档中显示的 WRITE_EXTERNAL_STORAGE
示例。)