Android 我需要关于发送推送通知的建议

Android 我需要关于发送推送通知的建议,android,google-app-engine,google-cloud-messaging,Android,Google App Engine,Google Cloud Messaging,在我的android应用程序中,我需要实现推送通知,我已经有一个Google API密钥和所有,并且已经在密钥上启用了推送通知 我知道通知将从服务器、下游发送到应用程序 基本上,我试图做的是,每当我的数据库更新时,我希望向特定设备发送消息,而不返回任何消息 但我不太明白的是,将信息发送到手机下游。这是如何做到的,我只向我的服务器发送过HTTP消息,对于如何做到这一点有些困惑。是否有任何服务器应用程序可以做到这一点,如果有的话,我在寻找什么。再搜索一点,您就会发现: 这应该是你要找的。这是谷歌网

在我的android应用程序中,我需要实现推送通知,我已经有一个Google API密钥和所有,并且已经在密钥上启用了推送通知

我知道通知将从服务器、下游发送到应用程序

基本上,我试图做的是,每当我的数据库更新时,我希望向特定设备发送消息,而不返回任何消息


但我不太明白的是,将信息发送到手机下游。这是如何做到的,我只向我的服务器发送过HTTP消息,对于如何做到这一点有些困惑。是否有任何服务器应用程序可以做到这一点,如果有的话,我在寻找什么。

再搜索一点,您就会发现:


这应该是你要找的。这是谷歌网站的链接,也提供了一些额外的见解:

有几种方法可以从服务器发送下游消息。其中一种是使用PHP。您可以编写PHP脚本将消息发送到GCM(GCM实际上会向手机发送通知)

这是我为我的应用程序想到的:

我用过卷发

    $url = 'https://android.googleapis.com/gcm/send';
$receive_id=$_POST['receiver_key'];
$message=$_POST['message'];

$registrationIDs = array( $receive_id);


    $fields = array(
        'registration_ids' => $registrationIDs,
        'data' => array( "message" => $message ),
    );
    $headers = array(
        'Authorization: key=' . $api_key,
        'Content-Type: application/json'
    );

   $ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($fields) );

 $curl_result = curl_exec( $ch );

我实际做的是让应用程序在需要时触发此PHP脚本运行。这就是所谓的从服务器发送下游消息。

由于您正在寻找具有推送通知的特定服务器功能,我建议使用一些为您执行此操作的软件,而不是为服务器编写所有代码


我知道的一个这样的软件是IBM MobileFirst(以前称为Worklight)。。。它的推送通知嵌入在。。。可能会有更多的服务器软件做同样的事情

看看我的。您只需将您的google api密钥和注册id粘贴到相应的字段中,然后将推送发送到您的客户端。此外,您还可以查看推送服务器的源代码,而不必亲自处理手机的下游。流程中有几个部分如下所示

使用GCM为自己设置(听起来你已经这样做了)

让应用程序为GCM注册该设备,并设置用于接收推送消息的处理程序。这通常是在应用程序启动时完成的,因此您需要事先与设备进行通信。您通常还希望给他们选择退出推送消息的选项。大部分应用程序方面的内容都有概述


有一个在数据库更新时触发的脚本。然后,您可以通过将消息和特定设备的注册ID作为有效负载传递给GCM来发送消息。

我只想更新此帖子,以防此信息对其他人有用。因此,基本上我所做的是当用户安装应用程序时,它会向谷歌注册以获取注册id,然后它会将其发送到我的数据库,以便我以后需要它。现在,当用户通过添加帖子或添加评论来更新数据库时,它将触发一个php脚本,在tomcat上运行我的web servlet,从那里我的tomcat servlet查询我的数据库,并找出要向谁(注册ID)发送消息。

这只有在由电话触发时才有效,对吗?。假设我想在没有事先通信的情况下向特定的电话发送通知。这可以通过PHP实现吗?是的,可以实现。您必须在数据库中使用触发器。触发器可以在数据库更新时触发PHP脚本。通过以下谷歌搜索,了解如何使用触发器从数据库触发PHP脚本:[link]经过进一步分析,我觉得你的问题更适合作为答案。谢谢。谢谢。我已经看过了,只是想弄清楚如果我不想安装ApacheAnt,是否有解决办法。谢谢,我会看看它们。开发推送服务器是否使用aws sns?或者仅仅GCM@kavita开发推送服务器只使用GCM,这是我2-3年前写的。我想aws sns是新事物。无论如何,请随意修改测试推送服务器的源代码,并使其在现在成为现实:)