搜索插件、代码仓与 APP 分类

插件详情v7.12.0

polar

这是 Android 和 iOS 上 Polar SDK 的 Dart 插件包装器

AndroidiOS
近 30 天下载
1930
喜欢数
22
Pub 分数
160

安装插件

flutter pub add polar

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

极地包是用于极地SDK的Dart插件包装器,使Flutter应用程序能够在Android和iOS平台上集成极地的健康和健身设备。它通过统一的API提供实时心率数据、设备连接和用户活动跟踪功能。专为开发健身或健康类应用的开发者设计,该包简化了与极地硬件的通信,确保数据同步和设备管理的无缝衔接。该包支持原生SDK功能,同时保持跨平台兼容性。

适合场景

  • 集成实时心率监测
  • 连接到极光可穿戴设备
  • 跟踪用户的体力活动
  • 构建健身追踪应用
  • 在健康应用中启用设备配对

主要特点

  • 跨平台支持(Android 和 iOS)
  • 实时心率数据访问
  • 设备连接和管理
  • 与 Flutter 应用的简单集成
  • 通过 Dart 的原生 SDK 抽象

适合对象

  • 健身应用开发者
  • 可穿戴健康应用开发者
  • 使用极地设备的移动开发者
  • 健康数据集成商
  • 需要生物识别传感器的Flutter项目

使用建议

  • 需要兼容的Polar设备
  • 仅限极地 SDK 功能
  • 需要在 Android 和 iOS 上具有适当的权限
  • 依赖外部 SDK 更新
  • 可能需要额外配置以支持后台操作

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

polar

Plugin wrapper for the Polar SDK

Note

This is an unofficial wrapper for the Polar SDK. For any questions regarding the underlying SDKs or Polar devices in general, please see the official repository.

Getting Started

Android

android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.BLUETOOTH_SCAN" android:usesPermissionFlags="neverForLocation" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" android:maxSdkVersion="30" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" android:maxSdkVersion="30" />

If you use BLUETOOTH_SCAN to determine location, remove android:usesPermissionFlags="neverForLocation"

If you use location services in your app, remove android:maxSdkVersion="30" from the location permission tags

iOS

Change the deployment target in Xcode to iOS 14+

Podfile:

platform :ios, '14.0'

Info.plist:

<key>NSBluetoothAlwaysUsageDescription</key>
<string>Used to connect to Polar devices</string>
<key>NSBluetoothPeripheralUsageDescription</key>
<string>Used to connect to Polar devices</string>
<key>UIBackgroundModes</key>
<array>
  <string>bluetooth-central</string>
</array>

Usage

import 'package:flutter/foundation.dart';
import 'package:polar/polar.dart';

const identifier = '1C709B20';
final polar = Polar();

void example() {
  polar.connectToDevice(identifier);
  streamWhenReady();
}

void streamWhenReady() async {
  final readiness = await polar.sdkFeaturesReadiness.firstWhere(
    (e) => e.identifier == identifier,
  );
  if (!readiness.ready.contains(PolarSdkFeature.onlineStreaming)) {
    return;
  }

  final availabletypes = await polar.getAvailableOnlineStreamDataTypes(
    identifier,
  );

  debugPrint('available types: $availabletypes');

  if (availabletypes.contains(PolarDataType.hr)) {
    polar
        .startHrStreaming(identifier)
        .listen((e) => debugPrint('HR data received'));
  }
  if (availabletypes.contains(PolarDataType.ecg)) {
    polar
        .startEcgStreaming(identifier)
        .listen((e) => debugPrint('ECG data received'));
  }
  if (availabletypes.contains(PolarDataType.acc)) {
    polar
        .startAccStreaming(identifier)
        .listen((e) => debugPrint('ACC data received'));
  }
}

所属分类

依赖

源码仓库

使用此插件的项目

暂无相关数据。