如何通过 Windows Azure 通过 GCM 通过唯一 ID 发送特定 Android 设备的通知?

Posted

技术标签:

【中文标题】如何通过 Windows Azure 通过 GCM 通过唯一 ID 发送特定 Android 设备的通知?【英文标题】:How to send a Notification for particular Android device by unique id via GCM by Windows Azure? 【发布时间】:2014-07-16 12:58:32 【问题描述】:

我已经使用 azure 移动服务将通知广播到 android 设备,我已收到所有通知。

但是如何通过使用唯一 ID(如 MAC-id 或 IMEI No(来自设备的任何唯一 ID))向特定设备发送通知。我已经看到 以下链接Here 但它使用了一些标签来获取通知。但我没有收到通知。

我的客户端代码是

private void registerForNotification() 
        try 
            NotificationsManager.handleNotifications(this, SENDER_ID, ClientNotificationHandler.class);
            gcm = GoogleCloudMessaging.getInstance(this);
            String connectionString = "Endpoint=sb://notifischeduler-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultFullSharedAccessSignature;SharedKey";
            hub = new NotificationHub("notifischeduler", connectionString, this);
            if(Constant.DEBUG)
            Log.d(TAG, "Hub Details >>> "+hub.getConnectionString()+"   HUB Path >> "+hub.getNotificationHubPath());
            registerWithNotificationHubs();
         catch (Exception e) 
            e.printStackTrace();
        
    


    @SuppressWarnings("unchecked")
    private void registerWithNotificationHubs() 
        new AsyncTask() 
            @Override
            protected Object doInBackground(Object... params) 
                try 
                    hub.unregister();
                    String regid = gcm.register(SENDER_ID);
                    String[] devArray = "ANDROIDMOBILE2".trim();
                    if(Constant.DEBUG)
                        Log.d(TAG,"HuB RegID  "+regid);
                    hub.register(regid,devArray);

                 catch (Exception e) 
                    e.printStackTrace();
                    return e;
                
                return null;
            
        .execute(null, null, null);
    

devArray 我需要通过唯一标识。如何做到这一点?

感谢您的帮助!

【问题讨论】:

【参考方案1】:

GCM 注册 ID 是识别 Android 设备的唯一 ID...

String regId = GCMRegistrar.getRegistrationId(this);

【讨论】:

【参考方案2】:

GCM 注册 ID 是识别任何 Android 设备的唯一 ID

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
regId = getRegistrationId(context);

然后向regId(独特的Android 设备)发送通知。

【讨论】:

以上是关于如何通过 Windows Azure 通过 GCM 通过唯一 ID 发送特定 Android 设备的通知?的主要内容,如果未能解决你的问题,请参考以下文章

windows azure 通知中心标签

Azure通知中心 - 从GCM迁移到FCM

如何通过 Azure Devops 将 UWP 包发布到 Windows 应用商店?

如何通过MSDN订阅激活免费提供的Windows Azure

如何通过 Windows Azure(预览版)管理门户设置 ADO.NET Entity Framework 连接字符串?

如何通过phonegap通过GCM服务器获取推送通知