搜尋套件、儲存庫與 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'));
  }
}

所屬分類

依賴

原始碼儲存庫

使用此套件的專案

暫無相關資料。