我的应用程序没有收到任何来自GCM的消息

我的应用程序没有收到任何来自GCM的消息

本文介绍了我的应用程序没有收到任何来自GCM的消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的应用程序不会收到来自gcm的任何消息我创建的发件人页面和接收类,我只想在通知栏上显示它

GCM.php

p>

 将这段代码放在 GCMIntentservice类中 

  private void sendNotification(String message){
Intent intent = new Intent(this,FullMapActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// int color = getResources()。getColor(R.color.my_notif_color);
PendingIntent pendingIntent = PendingIntent.getActivity(this,0,intent,PendingIntent.FLAG_UPDATE_CURRENT);
/ * PendingIntent pendingIntent = PendingIntent.getActivity(this,0 * // * Request code * // *,intent,
PendingIntent.FLAG_ONE_SHOT); * /

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
if(android.os.Build.VERSION.SDK_INT< Build.VERSION_CODES.LOLLIPOP){



NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder( )
.setSmallIcon(R.drawable.headerlogo)
.setContentTitle(hey ..!your booking is confirmed)
.setContentText(message)
.setAutoCancel(true )
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);


NotificationManager notificationManager =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

notificationManager.notify(0 / *通知的ID * /,notificationBuilder.build());
}
else
{

NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.headerlogo)
.setContentTitle(hey ..!your booking is confirmed)
.setContentText(message)
.setAutoCancel(true)
$ b $ .setSound(defaultSoundUri)
.setContentIntent(pendingIntent);


NotificationManager notificationManager =
(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);

notificationManager.notify(0,notificationBuilder.build());


$ / code>

并在 onMessageReceived

  sendNotification(message); 


My app won't receive any messages from gcm I created sender page and receiving class, I want to show it only on notifications bar

GCM.php

       <?php

class GSM {

function _construct() {

}

    public function send_notification($registration_ids, $message){

        include_once './config.php';


        $url = 'https://android.googleapis.com/gcm/send';

        $fileds = array(
            'registration_ids' => $registration_ids,
            'message' => $message,

            );
        $headers = array (
              'Authorization: key=' . GOOGLE_API_KEY,
              'Content-Type: application/json'
            );
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));

        $result = curl_exec($ch);
        if ($result === false) {

            die('Cutl failed:' . curl_error($ch));
        }
        curl_close($ch);
        echo $result;
    }
}



?>

index.php

    <!DOCTYPE html>
<html>
    <head>
        <title></title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){

            });
            function sendPushNotification(id){
                var data = $('form#'+id).serialize();
                $('form#'+id).unbind('submit');
                $.ajax({
                    url: "send_message.php",
                    type: 'GET',
                    data: data,
                    beforeSend: function() {

                    },
                    success: function(data, textStatus, xhr) {
                          $('.txt_message').val("");
                    },
                    error: function(xhr, textStatus, errorThrown) {

                    }
                });
                return false;
            }
        </script>
        <style type="text/css">
            .container{
                width: 950px;
                margin: 0 auto;
                padding: 0;
            }
            h1{
                font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                font-size: 24px;
                color: #777;

            }
            div.clear{
                clear: both;
            }
            ul.devices{
                margin: 0;
                padding: 0;
            }
            ul.devices li{
                float: right;
                list-style: none;
                border: 1px solid #dedede;
                padding: 10px;
                margin: 0 15px 25px 0;
                border-radius: 3px;
                -webkit-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                -moz-box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                box-shadow: 0 1px 5px rgba(0, 0, 0, 0.35);
                font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                color: #555;
            }
            ul.devices li label, ul.devices li span{
                font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
                font-size: 12px;
                font-style: normal;
                font-variant: normal;
                font-weight: bold;
                color: #393939;
                display: block;
                float: right;
            }
            ul.devices li label{
                height: 25px;
                width: 50px;
            }
            ul.devices li textarea{
                float: right;
                resize: none;
            }
            ul.devices li .send_btn{
                background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#0096FF), to(#005DFF));
                background: -webkit-linear-gradient(0% 0%, 0% 100%, from(#0096FF), to(#005DFF));
                background: -moz-linear-gradient(center top, #0096FF, #005DFF);
                background: linear-gradient(#0096FF, #005DFF);
                text-shadow: 0 1px 0 rgba(0, 0, 0, 0.3);
                border-radius: 3px;
                color: #fff;
            }
        </style>
      <style>

      </style>
    </head>
    <body>
        <?php
        include_once 'db_functions.php';
        $db = new DB_Functions();
        $users = $db->getAllUsers();
        if ($users != false)
            $no_of_users = mysql_num_rows($users);
        else
            $no_of_users = 0;
        ?>


        <div class="container" align="right">

            <h1><?php echo $no_of_users; ?> :عدد الأجهزة المسجلة </h1>
            <hr/>

            <ul class="devices">
                <?php
                if ($no_of_users > 0) {
                    ?>
                    <?php
                    while ($row = mysql_fetch_array($users)) {
                        ?>

                        <li>
                            <form id="<?php echo $row["id"] ?>" name="" method="post" onsubmit="return sendPushNotification)'
                            <?php echo $row["id"] ?>')">

                                <label dir="rtl">الإسم: </label> <span><?php echo $row["name"] ?></span>
                                <div class="clear"></div>
                                <label dir="rtl" >الإيميل:</label> <span><?php echo $row["email"] ?></span>
                                <div class="clear"></div>
                                <div class="send_container">
                                    <textarea dir="rtl" rows="3" name="message" cols="25" class="txt_message" placeholder="اكتب الرسالة هنا"></textarea>
                                    <input type="hidden" name="regId" value="<?php echo $row["gcmregid"] ?>"/>
                                    <input type="submit" class="send_btn" value="إرسال" onclick=""/>
                                </div>
                            </form>

                        </li>

                    <?php }
                } else { ?>

                    <li>


                                    لايوجد أجهزة مسجلة

                    </li>

                <?php } ?>
            </ul>
        </div>

    </body>
</html>

GCMIntentService.java

    public class GCMIntentService extends GcmListenerService{


      private static final String TAG = "GCMIntentService";

    @Override
    public void onMessageReceived(String from, Bundle data) {

        String message = data.getString("msg");
        Log.d(TAG, "from:" + from);
        Log.d(TAG, "message:" + message);

    }
}

AndroidManifest.xml

 <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<permission
    android:name="com.example.abdul_majeed.alruthea.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.example.abdul_majeed.alruthea.permission.C2D_MESSAGE" />
........

<service
            android:name=".GCMIntentService"
            android:exported="false" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            </intent-filter>
        </service>

    </application>

====================

解决方案

put this code in GCMIntentservice class

private void sendNotification(String message) {
    Intent intent = new Intent(this,FullMapActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//        int color = getResources().getColor(R.color.my_notif_color);
    PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    /*PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 *//* Request code *//*, intent,
            PendingIntent.FLAG_ONE_SHOT);*/

    Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {



        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.headerlogo)
                .setContentTitle("hey..! your booking is confirmed")
                .setContentText(message)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);


        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
    }
    else
    {

        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.drawable.headerlogo)
                .setContentTitle("hey..! your booking is confirmed")
                .setContentText(message)
                .setAutoCancel(true)

                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);


        NotificationManager notificationManager =
                (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        notificationManager.notify(0 , notificationBuilder.build());
    }
}`

and call it on onMessageReceived

sendNotification(message);

这篇关于我的应用程序没有收到任何来自GCM的消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 09:11