使用Amazon SNS推送通知 - 设备ID

时间:2017-10-17 05:49:02

标签: xamarin push-notification xamarin.forms xamarin.android amazon-sns

使用Xamarin Forms开发移动应用程序。对于推送通知,我们使用的是Amazon Simple Notification Service(SNS)。

Xamarin.Andriod: 1.在安装应用程序时,我们使用以下代码片段将设备ID注册到MainActivity的OnCreate方法中的Amazon SNS。它工作正常

using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"))
                {
                    string senders = AmazonUtils.GoogleConsoleProjectId;
                    intent.SetPackage("com.google.android.gsf");
                    intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0));
                    intent.PutExtra("sender", senders);
                    this.StartService(intent);
                }
  1. 每次应用程序打开时,都会在Amazon SNS中注册相应的设备ID。由于此应用程序需要额外的4秒来检查此过程,并在该页面加载后。

  2. 每次应用程序打开时,是否需要检查设备是否已注册?这是推送通知的标准吗?

  3. 此致 基兰

1 个答案:

答案 0 :(得分:1)

安装Xam.Plugins.Settings

它将添加一个名为Settings

的辅助类

在这个课程中你应该添加:

 private const string IsRegisteredKey = "registered_key";
 private static readonly bool IsRegisteredDefault = false;

 //Then adding this property
 public static bool IsRegistered
 {
     get
     {
         return AppSettings.GetValueOrDefault(IsRegisteredKey, IsRegisteredDefault);
     }
     set
     {
         AppSettings.AddOrUpdateValue(IsRegisteredKey, value);
     }
 }

然后在您的代码中调用此属性,如下所示:

using YourProjectNameSpace.Droid.Helper

....

if(!Settings.IsRegistered)
{
    using (Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"))
    {
         string senders = AmazonUtils.GoogleConsoleProjectId;
         intent.SetPackage("com.google.android.gsf");
         intent.PutExtra("app", PendingIntent.GetBroadcast(this, 0, new Intent(), 0));
         intent.PutExtra("sender", senders);
         this.StartService(intent);
    }
    Settings.IsRegistered = true;
}