1

我突然得到:

Fatal Exception: java.lang.SecurityException
[OBSERVE] User permission to READ is not acquired

三星数字健康 - 健康数据 API:

HealthConstants.Exercise.HEALTH_DATA_TYPE,
HealthPermissionManager.PermissionType.READ

它以前工作的地方。其他人有这个问题吗?

更多代码:

final Set<HealthPermissionManager.PermissionKey> permissions = new HashSet<>();
permissions.add(new HealthPermissionManager.PermissionKey(
  HealthConstants.Exercise.HEALTH_DATA_TYPE, HealthPermissionManager.PermissionType.READ
));
healthDataStore = new HealthDataStore(context, new HealthDataStore.ConnectionListener() {
  @Override
  public void onConnected() {
    final HealthPermissionManager permissionManager = new HealthPermissionManager(healthDataStore);
    Map<HealthPermissionManager.PermissionKey, Boolean> resultMap = permissionManager.isPermissionAcquired(permissions);
    if (resultMap.containsKey(Boolean.FALSE)) {

    } else {

      scheduleSyncShealthTask();
      final HealthDataObserver observer = new HealthDataObserver(null) {
        @Override
        public void onChange(String s) {
          scheduleSyncShealthTask();
        }
      };

// crashes here:

      HealthDataObserver.addObserver(healthDataStore, HealthConstants.Exercise.HEALTH_DATA_TYPE, observer);
    }
  }
4

0 回答 0