【问题标题】:Alarm clock functionality for closed apps in XamarinXamarin 中已关闭应用程序的闹钟功能
【发布时间】:2019-06-05 19:14:42
【问题描述】:

我想创建一个“闹钟”应用程序,它会在可配置的时间(包括应用程序关闭时)执行闹钟铃声。

对于 android,我找到了 AlarmManager,但如果应用程序关闭,它就不起作用。 是否可以在 iOS 和 Android 上实现此功能?

【问题讨论】:

  • 你的应用和系统闹钟有什么区别?您可以使用本地通知来实现吗?
  • 这是一个医疗领域的应用程序;患者必须在特定时间进行某些锻炼。因此,您可以使用系统闹钟来执行此操作,然后手动打开应用程序。

标签: android ios xamarin


【解决方案1】:

您可以在特定时间触发本地通知,以提醒人们进行某些练习。每次需要添加运动时,只需要添加本地通知,具体时间即可,可以设置soundcontentisRepeat等。

关于如何设置通知:

如果您使用 Xamarin.forms:您必须使用 dependency-service 来实现 iOSandroid 项目中的本地通知。

例如,在您的xamarin.forms 项目中:

public interface ISetLocalNotification
{
    void noti(string time, string content...);
}

并在 iOS 和 Android 项目中实现。

iOSlocal-notifications-in-ios

Androidlocal-notifications-in-android

当你想使用时:

public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();

        DependencyService.Get<ISetLocalNotification>().noti("12:00","123"...);

    }
} 

【讨论】:

  • 据我了解,这只会发送带有声音的通知。是否有可能发出令人讨厌的声音,用户必须像闹钟一样停用该声音?
  • @Harald 检查this thread 中的两个答案。这是document,Apple 说你不能播放声音超过 30 秒。
【解决方案2】:

不是解决方案:


有几种方法可以做到这一点。目前尚不清楚您是否使用 Xamarin Forms。但假设您使用的是 Xamarin 表单,这里有一个很棒的 example with an official Xamarin video。但本质上,当您的应用程序未打开时,您将在后台运行一些代码。只需启用该权限,并检查时间,以便应用在时间到时播放警报。

如果您不使用表单,则无需创建界面,因此容易得多。

【讨论】:

  • 抱歉 -1,但您为 iOS 提供的链接不适用于在所需时间运行后台代码。代码将在后台运行,但当系统决定这样做时。此外,虽然我在该链接上没有发现任何问题,但那里没有任何官方信息。
  • @IvanIčin 不错!我修好了它。我正在查看另一个非常好的示例,最后分享了错误的示例(xamarinhelp.com/xamarin-background-tasks
  • 对此我不确定。这是关于在后台保持应用程序运行...根据描述,它应该是相当有限的。
  • 服务会是什么样子?可以每 15 分钟(最小间隔)触发一次服务,但这对于闹钟来说不够精确。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
相关资源
最近更新 更多