gpt4 book ai didi

Android ACTIVITY_RECOGNITION 权限 SDK 28 在 Android 10/Q (SDK 29) 上运行

转载 作者:行者123 更新时间:2023-12-03 22:20:13 26 4
gpt4 key购买 nike

我的 Android 应用以 SDK 28 为目标,并连接到 Google Fit 以上传数据并读取其他一些数据。该应用程序使用 HistoryAPI 读取 com.google.step_count.delta 数据。

该文档声称“com.google.android.gms.permission.ACTIVITY_RECOGNITION 权限被转换为预先授予的运行时权限”如果应用程序以 SDK 28 为目标但在 SDK 29 上运行:https://developers.google.com/fit/android/authorization#android_permissions

我已经添加到应用程序的 list 中,就像文档说的那样。

当此 Android 应用在运行 Android 10 (SDK 29) 的设备上并且用户首次连接到 Google Fit 时,我收到一条日志:

There was a problem subscribing.com.google.android.gms.common.api.ApiException: 10: SecurityException: com.google.step_count.delta requires android.permission.ACTIVITY_RECOGNITION

然而,文档声称这将被转换为预先授予的运行时权限。

团队还没有准备好将应用的目标 SDK 迁移到 29,那么我们如何继续获取 com.google.step_count.delta 数据而不会出现此错误?

我假设这个日志意味着它实际上并没有连接,因为没有日志语句说:
Successfully subscribed to com.google.step_count.delta

最佳答案

已解决:在 App Api 级别 28 +

<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>

应用程序应检查是否已授予权限:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION)
!= PackageManager.PERMISSION_GRANTED) {
// Permission is not granted
}

要请求许可:
ActivityCompat.requestPermissions(thisActivity,
arrayOf(Manifest.permission.ACTIVITY_RECOGNITION),
MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION);

详细了解请求 Android 运行时权限。

如果您的应用面向 SDK 级别 28 或以下,则必须在其 list 文件中指定 com.google.android.gms.permission.ACTIVITY_RECOGNITION 权限。

关于Android ACTIVITY_RECOGNITION 权限 SDK 28 在 Android 10/Q (SDK 29) 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com