首页 > 解决方案 > NSSystemClockDidChangeNotification 是否收到有关自动时区更新的通知(无需手动干预。例如,当用户正在旅行时)?

问题描述

我们可以通过手机检测时区更改与用户专门更改时间吗?android 也有同样的问题..我在哪里使用 intent.ActionTimeChanged ?

标签: androidiosxamarin

解决方案


您需要分别在每个平台(iOS / Android)上实现这一点。

在 Android 上,您可以注册一个BroadcastReceiverfor Intent.ActionTimeChangedIntent.ActionTimezoneChanged如果需要):

[BroadcastReceiver]
[IntentFilter(new[] { Intent.ActionTimeChanged })]
public class TimeChanged : BroadcastReceiver
{
    public override void OnReceive(Context context, Intent intent)
    {
        Console.WriteLine("Time change, do something with that knowledge");
    }
}

在 iOS 上,您可以注册NSSystemClockDidChange通知:

NSNotificationCenter.DefaultCenter.AddObserver(new NSString("NSSystemClockDidChangeNotification"), (obj) =>
{
    Console.WriteLine("Time change, do something with that knowledge");
});

我在我这边测试了解决方案,它工作正常。

请参阅https://stackoverflow.com/a/56141207/8187800


推荐阅读