Java 极性心率传感器在google fit api(xamarin android)中不可用作数据源

Java 极性心率传感器在google fit api(xamarin android)中不可用作数据源,java,c#,android,xamarin,google-fit,Java,C#,Android,Xamarin,Google Fit,如果BLE设备被成功声明,您可以像使用记录API和传感器API访问任何其他传感器一样访问它。例如,可以使用SensorsClient.findDataSources方法获取BLE设备的数据源对象 但我无法找到以Polar H10传感器为源的数据源。我所能找到的只是我正在调试应用程序的手机的数据源 在一款可穿戴设备(如心率传感器)被成功申请后,有人知道如何使用Google Fit Sensors API将侦听器注册到适当的数据源吗 以下是我使用Xamarin在C#中声明ble传感器(Polar H

如果BLE设备被成功声明,您可以像使用记录API和传感器API访问任何其他传感器一样访问它。例如,可以使用SensorsClient.findDataSources方法获取BLE设备的数据源对象

但我无法找到以Polar H10传感器为源的数据源。我所能找到的只是我正在调试应用程序的手机的数据源

在一款可穿戴设备(如心率传感器)被成功申请后,有人知道如何使用Google Fit Sensors API将侦听器注册到适当的数据源吗

以下是我使用Xamarin在C#中声明ble传感器(Polar H10)的代码:

 var pending_result = await FitnessClass.BleApi.ClaimBleDeviceAsync(mClient, device);
 if (pending_result.IsSuccess)
 {
    mActivity.RunOnUiThread(() =>
    {
        releaseButton.Enabled = true;
    });
    FindFitnessDataSources();
  }
下面是我用来查找心率\u bpm数据源的代码:

private async void FindFitnessDataSources()
{
    var dataSourcesResult = await FitnessClass.SensorsApi.FindDataSourcesAsync(mClient, new DataSourcesRequest.Builder()
           .SetDataTypes(Android.Gms.Fitness.Data.DataType.TypeHeartRateBpm)
           .SetDataSourceTypes(DataSource.TypeRaw)
           .Build());        

    Console.WriteLine("Result: " + dataSourcesResult.Status);
    foreach (DataSource dataSource in dataSourcesResult.DataSources)
    {
        Console.WriteLine("Data source found: " + dataSource.Name);
        Console.WriteLine("Data Source type: " + dataSource.DataType);

        ////Let's register a listener to receive Activity data!
        if (dataSource.DataType == Android.Gms.Fitness.Data.DataType.TypeHeartRateBpm)
        {
            Console.WriteLine("Registering Listener for " + dataSource.Name);
            RegisterFitnessDataListener(dataSource, Android.Gms.Fitness.Data.DataType.TypeHeartRateBpm);
        }                               
    }
}
下面是我将侦听器注册到上述数据源的代码:

private async void RegisterFitnessDataListener(DataSource dataSource, Android.Gms.Fitness.Data.DataType dataType)
{
    mListener = new OnDataPointListener();
    var status = await FitnessClass.SensorsApi.AddAsync(mClient, new SensorRequest.Builder()
          .SetDataSource(dataSource) // Optional but recommended for custom data sets.
          .SetDataType(dataType) // Can't be omitted.
          .SetSamplingRate(1, TimeUnit.Seconds)
          .Build(),
           mListener);


    if (status.IsSuccess)
    {
        Console.WriteLine("Listener registered!");
    }
    else
    {
        Console.WriteLine("Listener not registered.");
    }

}

我认为这里的问题在于SensorsApi只允许您访问运行在WearOS上的设备。据我所知,除M600外,Polar手表在不同的设备上运行。我目前在三星Galaxy手表上也遇到了同样的问题。我认为唯一的方法是通过Polar应用程序将数据同步到Google Fit应用程序,然后请求Google Fit应用程序的历史数据。 如果您找到任何方法通过SensorsAPI使其工作,请让我知道,因为我也尝试使其工作