C# Android上的Azure通知中心。如何发送给特定用户?

C# Android上的Azure通知中心。如何发送给特定用户?,c#,android,wpf,azure,azure-notificationhub,C#,Android,Wpf,Azure,Azure Notificationhub,我想创建一个小应用程序来向我的Android设备发送通知 我制作了一个WPF应用程序和一个Android应用程序,我使用Azure Notification Hub和GCM for notif 我可以为所有android设备发送通知,但不能为一台设备发送通知 我来这里是为了得到你的帮助 我的WPF应用程序的工作方式如下: private async void SendNotificationAsync() { var hub = NotificationHubClie

我想创建一个小应用程序来向我的Android设备发送通知

我制作了一个WPF应用程序和一个Android应用程序,我使用Azure Notification Hub和GCM for notif

我可以为所有android设备发送通知,但不能为一台设备发送通知

我来这里是为了得到你的帮助

我的WPF应用程序的工作方式如下:

 private async void SendNotificationAsync()
    { 
        var hub = NotificationHubClient.CreateClientFromConnectionString(Keys.FullConnectionString, Keys.NotificationHubName);
        if (!string.IsNullOrEmpty(TxtTo.Text)) 
            await hub.SendGcmNativeNotificationAsync(
                    "{'to': '" + TxtTo.Text + "', 'data': { 'message': '" + TxtMessage.Text + "', 'title': '" + TxtTitle.Text + "' } }");
        else
        {
            await hub.SendGcmNativeNotificationAsync(
                    "{'data': { 'message': '" + TxtMessage.Text + "', 'title': '" + TxtTitle.Text + "' } }");
        }
    }
我的问题是:

我不知道如何获得Android ID设备注册,或者,这是我用OnRegistered方法生成的注册ID:

 protected override void OnRegistered(Context context, string registrationId)
    {
        Log.Verbose(MyBroadcastReceiver.TAG, "GCM Registered: " + registrationId);

        RegistrationId = registrationId;
        ChangeTextID(registrationId);

        Hub = new NotificationHub(Keys.NotificationHubName, Keys.ListenConnectionString, context);

        try
        {
            Hub.UnregisterAll(registrationId);
        }
        catch (Exception ex)
        {
            Log.Error(MyBroadcastReceiver.TAG, ex.Message);
        }

        var tags = new List<string>();

        try
        {
            Hub.Register(registrationId, tags.ToArray());
        }
        catch (Exception ex)
        {
            Log.Error(MyBroadcastReceiver.TAG, ex.Message);
        }
    }
protected override void OnRegistered(上下文上下文,字符串注册ID)
{
详细日志(MyBroadcastReceiver.TAG,“GCM注册:”+registrationId);
注册ID=注册ID;
ChangeTextID(注册ID);
Hub=新的NotificationHub(Keys.NotificationHubName,Keys.ListenConnectionString,上下文);
尝试
{
Hub.UnregisterAll(注册ID);
}
捕获(例外情况除外)
{
Log.Error(MyBroadcastReceiver.TAG,ex.Message);
}
var tags=新列表();
尝试
{
寄存器(registrationId,tags.ToArray());
}
捕获(例外情况除外)
{
Log.Error(MyBroadcastReceiver.TAG,ex.Message);
}
}
但是,如果我使用这个ID发送通知(在我的WPF应用程序中),它将不起作用(替换TxtTo.Text)


您能帮助我吗?

您不需要使用任何东西来发送目标推送通知,但您订阅该应用程序的标签除外。 为notification hub注册应用程序时,它会将其记录放入notification hub后端注册表中(您可以从Azure Portal访问或使用。如果您将应用程序订阅到某个标记,并将通知发送到该标记,但应用程序未收到通知,请查看表中是否有该应用程序以及相应的标记

这是一个很好的功能,因为您可以在不知道用户ID或其他任何信息的情况下向用户发送目标通知。发送到该标签。这在平台之间非常有效-我们使用该方法为在不同设备和平台上订阅同一标签的用户发送目标通知


相关。如我所见,您将通知发送到标记(尝试添加到SendGcmNativeNotificationAsync额外参数,如)。尝试将其发送到确切的标记(您可以从门户网站notification Hub dashboard=>DEBUG窗格中执行此操作).

您不需要使用任何东西来发送目标推送通知,但订阅该应用程序的标签除外。 为notification hub注册应用程序时,它会将其记录放入notification hub后端注册表中(您可以从Azure Portal访问或使用。如果您将应用程序订阅到某个标记,并将通知发送到该标记,但应用程序未收到通知,请查看表中是否有该应用程序以及相应的标记

这是一个很好的功能,因为您可以在不知道用户ID或其他任何信息的情况下向用户发送目标通知。发送到该标签。这在平台之间非常有效-我们使用该方法为在不同设备和平台上订阅同一标签的用户发送目标通知

相关。如我所见,您发送通知时不使用标记(尝试向SendGcmNativeNotificationAsync添加额外参数,如)。尝试将其发送到确切的标记(您可以从门户网站notification Hub dashboard=>DEBUG窗格执行此操作)