【问题标题】:Android 12 Precise vs Approximate Location Permissions DialogAndroid 12 精确与近似位置权限对话框
【发布时间】:2023-02-10 13:43:38
【问题描述】:

任何人都可以确认在 Android 12 上请求 UX 以获取精细位置权限的一致性吗?

使用 EasyPermissions,在请求位置时...

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
targetSdkVersion 30
compileSdkVersion 30

..我们看到一个设备使用新的精确/近似对话框,另一个使用旧对话框。唯一明显的区别是 Pixel 3 使用的是稍新版本的 Android 12。就其价值而言,一旦编译并以 SDK 31 为目标,这两款手机的行为就会一致。

相关但此处未注意到的文章描述了在 Android 12 上需要精细+粗略权限的变体 - https://developer.android.com/training/location/permissions#approximate-request

像素 3a XL:

像素 3:

【问题讨论】:

    标签: android permissions location


    【解决方案1】:

    经过一些新的挖掘,谷歌似乎犯了一个错误。我没有深入研究 OSS 代码,但在 Android 12 的早期版本上,谷歌在确定显示新对话框样式时一定不会检查 targetSdkVersion == 31

    一旦我以 SDK 31 为目标,两个 Pixel 设备的行为都相同并使用新的对话框样式。

    【讨论】:

    • 你能展示一些关于这个的官方链接或谷歌问题吗,我也面临这个但找不到任何东西
    • 是的,没有官方文件,但我们在 Uber 内部大规模地注意到了这一点。该问题不再出现,因为我们拥有的任何 Android 12 设备都已收到后续更新。
    【解决方案2】:

    据我所知,从 Android 11(SDK 级别 30)开始,权限模型发生了变化,现在用户可以更好地控制自己的隐私。操作系统会根据应用程序的用途显示不同的对话框,用于请求精确的位置权限。如果应用程序只需要短时间的位置信息,操作系统会显示一个大概的位置对话框。如果应用需要较长时间的位置信息,操作系统会显示精确位置对话框。

    因此,围绕精细位置权限请求 UX 的一致性似乎取决于 Android 版本、设备和 Android 操作系统的构建。它还可能受到用于请求权限的库的影响,例如 EasyPermissions。

    编译和定位 SDK 版本 31 可能有助于实现一致性,但最好始终检查不同设备上的行为以确保应用程序正常运行。

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 1970-01-01
      • 2011-12-19
      • 2012-11-23
      • 2021-11-11
      • 2019-05-13
      • 2017-05-06
      • 1970-01-01
      • 2015-12-16
      相关资源
      最近更新 更多