using HeartRateMonitorAndroid.Services.Platform; namespace HeartRateMonitorAndroid.Services { /// /// 通知服务工厂 /// public static class NotificationService { private static readonly INotificationService _instance; /// /// 静态构造函数,根据平台创建对应的通知服务实现 /// static NotificationService() { if (DeviceInfo.Platform == DevicePlatform.Android) _instance = new AndroidNotificationService(); else if (DeviceInfo.Platform == DevicePlatform.iOS) _instance = new IosNotificationService(); else if (DeviceInfo.Platform == DevicePlatform.WinUI) _instance = new WindowsNotificationService(); else _instance = new NullNotificationService(); // 初始化通知服务 _instance.Initialize(); } /// /// 获取当前平台的通知服务实例 /// public static INotificationService Current => _instance; #region 便捷方法 /// /// 显示心率通知 /// public static void ShowHeartRateNotification(int currentHeartRate, double avgHeartRate, int minHeartRate, int maxHeartRate, TimeSpan duration) { _instance.ShowHeartRateNotification(currentHeartRate, avgHeartRate, minHeartRate, maxHeartRate, duration); } /// /// 取消通知 /// public static void CancelNotification() { _instance.CancelNotification(); } /// /// 显示重连通知 /// public static void ShowReconnectionNotification(string title, string message, int attemptCount) { _instance.ShowReconnectionNotification(title, message, attemptCount); } #endregion /// /// 空实现,用于不支持的平台 /// private class NullNotificationService : INotificationService { public void Initialize() { } public void ShowHeartRateNotification(int currentHeartRate, double avgHeartRate, int minHeartRate, int maxHeartRate, TimeSpan duration) { // 空实现 } public void CancelNotification() { // 空实现 } public void ShowReconnectionNotification(string title, string message, int attemptCount) { // 空实现 } } } }