Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GCM推送通知设备未接收消息_Android_Push Notification_Google Cloud Messaging - Fatal编程技术网

Android GCM推送通知设备未接收消息

Android GCM推送通知设备未接收消息,android,push-notification,google-cloud-messaging,Android,Push Notification,Google Cloud Messaging,您好,我正在为我的应用程序使用gcm推送通知。我正在向服务器发送项目id,并成功地从服务器获取用户id。服务器也成功发送了推送消息,我检查了它,但我的设备应用程序没有收到任何消息。。。有什么问题吗?。谢谢 gcminentservice.class package com.yash.rastiyaujjalaapps; import android.app.IntentService; import android.app.NotificationManager; import android

您好,我正在为我的应用程序使用
gcm推送通知。我正在向服务器发送
项目id
,并成功地从服务器获取
用户id
。服务器也成功发送了
推送消息
,我检查了它,但我的设备应用程序没有收到任何消息。。。有什么问题吗?。谢谢

gcminentservice.class

package com.yash.rastiyaujjalaapps;

import android.app.IntentService;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import com.google.android.gms.gcm.GoogleCloudMessaging;

public class GCMIntentService extends IntentService{
    Context context;
    public  static final int NOTIFICATION_ID =1;
    private NotificationManager mNotificationManager;
    NotificationCompat.Builder builder;
    public static final String TAG = "GCM Demo";
    public int when=(int)System.currentTimeMillis();        
    public int per=when%100;
    private Handler handler;
     // System.out.println("...."+ when);

    public GCMIntentService() {
        super("237330017668");
        // TODO Auto-generated constructor stub
    }

    @Override
    public void onCreate(){
        super.onCreate();
        handler = new Handler();
    }

    @Override
    protected void onHandleIntent(Intent intent) {
        // TODO Auto-generated method stub
        Bundle extras = intent.getExtras();
        String msg = intent.getStringExtra("message");
        System.out.println("...."+ msg);
        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
        String messageType = gcm.getMessageType(intent);
        String msg2 = extras.getString("message");
         if (!extras.isEmpty()) {

             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)) {
                    System.out.println("...."+ msg);
                    // 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(500);
                        } catch (InterruptedException e) {
                        }
                   }
                    Log.i(TAG, "Completed work @ " + SystemClock.elapsedRealtime());
                    // Post notification of received message.
                    //sendNotification("Received: " + extras.toString());
                 String   msg1=msg2.trim();
                    sendNotification(msg1);
                    Log.i(TAG, "Received: " + extras.toString());
                }
            }
         GcmBroadcastReceiver.completeWakefulIntent(intent);
    }
    private void sendNotification(String msg1) {
        //msg=msg.trim();
    long[] vibraPattern = {0, 500, 250, 500 };
         Uri defaultSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);


          // int when=(int)System.currentTimeMillis();        
        //int per=when%100;
         // System.out.println("...."+ when);
        mNotificationManager = (NotificationManager)
                getSystemService(Context.NOTIFICATION_SERVICE);


     //   Intent notificationIntent = new Intent(context, MainActivity.class);
        //notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            //  | Intent.FLAG_ACTIVITY_SINGLE_TOP);*/






   Intent myintent = new Intent(this, MainActivity.class);
   myintent.putExtra("message", msg1);
      //  myintent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0,
                myintent, PendingIntent.FLAG_ONE_SHOT);

        NotificationCompat.Builder mBuilder =
                new NotificationCompat.Builder(this)
       .setAutoCancel(true)
        .setSmallIcon(R.drawable.logo)
        .setContentTitle("Rashtriya Ujala News")
        .setStyle(new NotificationCompat.BigTextStyle()
        .bigText(msg1))
        .setContentText(msg1)
        .setVibrate(vibraPattern)
        .setLights(0xff00ff00, 300, 100)
        .setSound(defaultSound)
        .setAutoCancel(true);
        mBuilder.setContentIntent(contentIntent);
  //mNotificationManager.notify(NOTIFICATION_ID, mBuilder.build());
       mNotificationManager.notify(per, mBuilder.build());






            // Update the TextView
           // TextView text = (TextView) findViewById(R.id.textView1);
           // text.setText("This app has been started " + counter + " times.");
            // Increment the counter
          }

}
文件是

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yash.rastiyaujjalaapps"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="19" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
    android:name="com.yash.rastiyaujjalaapps.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.yash.rastiyaujjalaapps.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name1"
    android:theme="@style/Theme.Sherlock.Light" >
     <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <activity
        android:name="com.yash.rastiyaujjalaapps.SplashScreen"
        android:theme="@style/Theme.Sherlock.Light.NoActionBar" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <receiver
        android:name=".GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.yash.rastiyaujjalaapps" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMIntentService" />

    <activity
        android:name="com.yash.rastiyaujjalaapps.HomeMainScreen"
        android:theme="@style/Theme.Sherlock.Light.NoActionBar" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.MainActivity"
        android:icon="@drawable/mono"
        android:label="@string/app_name1" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.LiveVideo"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="@string/rastiyaujjala"
        android:uiOptions="splitActionBarWhenNarrow" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.PoliticalMenu"
        android:label="@string/political"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.AgricultureMenu"
        android:label="@string/agriculture"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.SportMenu"
        android:label="@string/sport"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.HomeDetails"
        android:icon="@drawable/mono" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Home"
        android:label="Home" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.National"
        android:label="@string/national" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.National2"
        android:icon="@drawable/mono"
        android:label="@string/national" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.International2"
        android:icon="@drawable/mono"
        android:label="@string/internatation" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Business2"
        android:icon="@drawable/mono"
        android:label="@string/business" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Rajya2"
        android:icon="@drawable/mono"
        android:label="@string/business" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Political2"
        android:icon="@drawable/mono"
        android:label="@string/political" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Technology2"
        android:icon="@drawable/mono"
        android:label="@string/technology" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Lifestyle2"
        android:icon="@drawable/mono"
        android:label="@string/lifestyle" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Rashifal2"
        android:icon="@drawable/mono"
        android:label="@string/rashifal" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Sports2"
        android:icon="@drawable/mono"
        android:label="@string/sport" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.VideoPageFragment"
        android:label="@string/sport"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    </activity>
    <!--
    <receiver android:name="com.personagraph.sensor.service.StartupReceiver"> <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED"/>
      <category android:name="android.intent.category.HOME"/> </intent-filter>
    </receiver>

    <service android:name="com.personagraph.sensor.service.SensorService"> 
       <intent-filter>
         <action android:name="com.personagraph.SensorService" /> 
       </intent-filter>
    </service>  


    -->
</application>


在AndroidManifest.xml中,将android:name=“.GCMBroadcastReceiver”替换为android:name=“com.yash.rastiyaujjalaapps.GCMBroadcastReceiver”
在新版谷歌安卓play服务中,android:name=“.gcMinentService”*由服务android:name=“com.yash.rastiyaujjalaapps.gcMinentService”

与上一版本相比有了很大的变化。你可以参考谷歌的(一步一步)。它简单易懂。祝你好运

我们现在将“com.yash.rastiyaujjalaapps.GCMBroadcastReceiver”替换为“com.yash.rastiyaujjalaapps.GCMBroadcastReceiver”是的,我认为这将是问题所在,但它仍然没有收到消息。我认为还必须有一个问题检查通知是否真的到达您的设备。通过在gcmbroadcasreceiver的
onReceive()
方法中放置一个虚拟的
Log
,然后在
onhandlecontent()
方法中放置一个虚拟的
gcminentservice.java
。正在检查其中断的位置。但是此示例在我的另一个应用程序中工作,但在此应用程序中不工作抱歉,因为我没有检查您的代码。我总是更新新的API。在这个问题中,我不想调试您的代码,因为在新的Api中,发送通知并接收它们非常简单。你为什么不引用新的api?嘿,你能告诉我在哪里可以找到关于这个的教程吗?你可以在这里引用这个tut为你的解决方案:或者使用解析:或者使用新的api:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.yash.rastiyaujjalaapps"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="19" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission
    android:name="com.yash.rastiyaujjalaapps.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.yash.rastiyaujjalaapps.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
    android:allowBackup="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name1"
    android:theme="@style/Theme.Sherlock.Light" >
     <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <activity
        android:name="com.yash.rastiyaujjalaapps.SplashScreen"
        android:theme="@style/Theme.Sherlock.Light.NoActionBar" >

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

    <receiver
        android:name=".GCMBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.yash.rastiyaujjalaapps" />
        </intent-filter>
    </receiver>

    <service android:name=".GCMIntentService" />

    <activity
        android:name="com.yash.rastiyaujjalaapps.HomeMainScreen"
        android:theme="@style/Theme.Sherlock.Light.NoActionBar" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.MainActivity"
        android:icon="@drawable/mono"
        android:label="@string/app_name1" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.LiveVideo"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="@string/rastiyaujjala"
        android:uiOptions="splitActionBarWhenNarrow" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.PoliticalMenu"
        android:label="@string/political"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.AgricultureMenu"
        android:label="@string/agriculture"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.SportMenu"
        android:label="@string/sport"
        android:screenOrientation="landscape" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.HomeDetails"
        android:icon="@drawable/mono" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Home"
        android:label="Home" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.National"
        android:label="@string/national" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.National2"
        android:icon="@drawable/mono"
        android:label="@string/national" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.International2"
        android:icon="@drawable/mono"
        android:label="@string/internatation" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Business2"
        android:icon="@drawable/mono"
        android:label="@string/business" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Rajya2"
        android:icon="@drawable/mono"
        android:label="@string/business" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Political2"
        android:icon="@drawable/mono"
        android:label="@string/political" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Technology2"
        android:icon="@drawable/mono"
        android:label="@string/technology" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Lifestyle2"
        android:icon="@drawable/mono"
        android:label="@string/lifestyle" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Rashifal2"
        android:icon="@drawable/mono"
        android:label="@string/rashifal" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.Sports2"
        android:icon="@drawable/mono"
        android:label="@string/sport" >
    </activity>
    <activity
        android:name="com.yash.rastiyaujjalaapps.VideoPageFragment"
        android:label="@string/sport"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    </activity>
    <!--
    <receiver android:name="com.personagraph.sensor.service.StartupReceiver"> <intent-filter>
      <action android:name="android.intent.action.BOOT_COMPLETED"/>
      <category android:name="android.intent.category.HOME"/> </intent-filter>
    </receiver>

    <service android:name="com.personagraph.sensor.service.SensorService"> 
       <intent-filter>
         <action android:name="com.personagraph.SensorService" /> 
       </intent-filter>
    </service>  


    -->
</application>