Gerät empfängt keine Nachricht von NEW Google Cloud Messaging (NEW GCM)

Bitte helfen Sie mir, ich habe über dieses Thema gesurft und noch in diesem neuen GCM gestapelt

Mein letztes Projekt mit GCM Push unter diesem Link

ht **: //www.androidhive.info/2012/10/android-push-notifications- using-google-cloud-messaging-gcm-php-and-mysql/

Jetzt ist der letzte GCM (C2DM) veraltet, sodass wir keinen GCMRegistrar mehr verwenden

Werfen Sie hier einen Blick auf diese h ** p: //developer.android.com/google/gcm/c2dm.html Es gibt eine Aussage "Android Cloud für Geräte-Messaging (C2DM) ist veraltet. Der C2DM-Dienst wird weiterhin verwendet kurzfristig beibehalten, aberC2DM akzeptiert keine neuen Benutzer und gewährt keine neuen Kontingente"

Ich benutze diesen Link zum Erlernen des Konzepts

und für das Beispiel verwende ich:https://code.google.com/p/gcm/source/browse/#git

Ich denke, ich habe alle erforderlichen Schritte befolgt

Ich habe mein Projekt auf Google Play Service Lib verwiesen

Ich habe auch meine Absender-ID in meine Google-Projektnummer geändert

Ich habe auch RegID von GCM erhalten

Aber das Problem ist, wann immer ich auf die Schaltfläche "Senden" klicke

es zeigt mir nie etwas

Aus dem Google-Dokumentationsbeispiel geht hervor, dass ECHO auf mein Gerät zurückkehren soll, dies jedoch niemals tut

Ich habe die Dokumentation eingecheckt. Das Konzept besagt, dass gcmbroadcastreceiver jede GCM-Nachricht erhält, die auf mein Gerät gesendet wird.

Also habe ich versucht, mich im "OnReceive" des Senders einzuloggen, aber es wurde nie etwas angezeigt

Ich habe auch versucht, HTTP GCM Server mithilfe dieser Dokumentation zu implementierenhttp://developer.android.com/google/gcm/http.html

Ich erhalte die Antwort wie folgt: {"multicast_id": 6256370624066466203, "success": 1, "failure": 0, "canonical_ids": 0, "results": [{"message_id": "0: 1378114688323559% eab45603f9fd7ecd"}] }

aber mein Logbuch zeigt nie etwas

Hier ist mein Rundfunkempfänger

public class GcmBroadcastReceiver extends WakefulBroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        Log.v("HAHA BANGET","masuk ke broadcastReceiver");

        // Explicitly specify that GcmIntentService will handle the intent.
        ComponentName comp = new ComponentName(context.getPackageName(),
                GcmIntentService.class.getName());
        // Start the service, keeping the device awake while it is launching.
        startWakefulService(context, (intent.setComponent(comp)));
        setResultCode(Activity.RESULT_OK);
    }
}

und hier ist mein intentservice

public class GcmIntentService extends IntentService {
    public static final int NOTIFICATION_ID = 1;
    private NotificationManager mNotificationManager;
    NotificationCompat.Builder builder;

    public GcmIntentService() {
        super("7134XXXXX");
    }
    public static final String TAG = "HAHA";

    @Override
    protected void onHandleIntent(Intent intent) {

        Log.v(TAG,"MASUK INTENT NIH");

        Bundle extras = intent.getExtras();
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
        // The getMessageType() intent parameter must be the intent you received
        // in your BroadcastReceiver.
        String messageType = gcm.getMessageType(intent);

        if (!extras.isEmpty()) {  // has effect of unparcelling Bundle
            /*
             * Filter messages based on message type. Since it is likely that GCM will be
             * extended in the future with new message types, just ignore any message types you're
             * not interested in, or that you don't recognize.
             */
            if (GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(messageType)) {
                sendNotification("Send error: " + extras.toString());
            } else if (GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(messageType)) {
                sendNotification("Deleted messages on server: " + extras.toString());
            // If it's a regular GCM message, do some work.
            } else if (GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(messageType)) {
                // This loop represents the service doing some work.
                for (int i = 0; i < 5; i++) {
                    Log.i(TAG, "Working... " + (i + 1)
                            + "/5 @ " + SystemClock.elapsedRealtime());
                    try {
                        Thread.sleep(5000);
                    } catch (InterruptedException e) {
                    }
                }
                Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
                // Post notification of received message.
                sendNotification("Received: " + extras.toString());
                Log.i(TAG, "Received: " + extras.toString());
            }
        }
        // Release the wake lock provided by the WakefulBroadcastReceiver.
        GcmBroadcastReceiver.completeWakefulIntent(intent);
    }

    // Put the message into a notification and post it.
    // This is just one simple example of what you might choose to do with
    // a GCM message.
    private void sendNotification(String msg) {
        mNotificationManager = (NotificationManager)
                this.getSystemService(Context.NOTIFICATION_SERVICE);

        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                new Intent(this, PushBaruLagi.class), 0);

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
        .setSmallIcon(R.drawable.common_signin_btn_icon_dark)
        .setContentTitle("GCM Notification")
        .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(msg))
        .setContentText(msg);

        mBuilder.setContentIntent(contentIntent);
        mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
    }
}

Und hier ist mein Manifest

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />


<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

<permission android:name="com.coba.pushgcmbaru.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />
<uses-permission android:name="com.coba.pushgcmbaru.permission.C2D_MESSAGE" />


<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <receiver
        android:name="com.coba.pushgcmbaru.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.coba.pushgcmbaru" />
        </intent-filter>
    </receiver>
    <service android:name="com.coba.pushgcmbaru.GcmIntentService" />

    <activity
        android:name="com.coba.pushgcmbaru.PushBaruLagi"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

Ich benutze 2.2 FROYO

und ich habe meine Google Play-Dienste auf den neuesten Stand gebracht

Also Leute, wenn mir jemand helfen könnte, vielen Dank :)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage