Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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 c2dm自动注销_Android_Android C2dm - Fatal编程技术网

Android c2dm自动注销

Android c2dm自动注销,android,android-c2dm,Android,Android C2dm,当我向设备发送通知时,该设备会收到推送消息,但它会收到“com.google.android.c2dm.intent.REGISTRATION”意图,而不是“com.google.android.c2dm.intent.receive”。 如果我尝试发送第二个通知,我会从谷歌收到“NotRegistered”错误 该设备得到了良好的注册(我猜),因为我得到了身份验证令牌“APA91…-119个字符-” 以下是我开始注册设备的代码: Intent registrationIntent = new

当我向设备发送通知时,该设备会收到推送消息,但它会收到“com.google.android.c2dm.intent.REGISTRATION”意图,而不是“com.google.android.c2dm.intent.receive”。 如果我尝试发送第二个通知,我会从谷歌收到“NotRegistered”错误

该设备得到了良好的注册(我猜),因为我得到了身份验证令牌“APA91…-119个字符-”

以下是我开始注册设备的代码:

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0));
registrationIntent.putExtra("sender", "EMAIL");
startService(registrationIntent);
发送者(这在Android设备中完成):

我在设备上执行推送通知,因为如果我在服务器端执行推送通知,我总是会收到“InvalidRegistration”错误

奇怪的是,我似乎注册了,但当我发送一条推送消息时,就像谷歌注销了设备一样


有什么想法/建议吗

有时候,解决方案就在你面前,而你却看不到,对于那些和我有同样问题的人来说,问题就在清单上,我写不好包名

我也有同样的问题,并解决了它

这是错误的代码

<receiver android:name=".MyC2DMReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
          <category android:name="com.package.myapp" />
      </intent-filter>
      <intent-filter>
          <action android:name="com.google.android.c2dm.permission.RECEIVE" />
          <category android:name="com.package.myapp" />
      </intent-filter>
  </receiver>
然后它就正常工作了 所以RECEIVE的包名是错误的

正确代码

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


我改进了代码,现在,我在我的服务器(php)中执行ac2dm服务,但响应是相同的,在我收到注销请求的设备上。代码与这里相同:我也面临同样的问题。。请帮助我,你能提供更多信息吗?我也经历过同样的问题。我的舱单上没有发现任何问题。
<receiver android:name=".MyC2DMReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
          <category android:name="com.package.myapp" />
      </intent-filter>
      <intent-filter>
          <action android:name="com.google.android.c2dm.permission.RECEIVE" />
          <category android:name="com.package.myapp" />
      </intent-filter>
  </receiver>
com.google.android.c2dm.permission.RECEIVE => com.google.android.c2dm.intent.RECEIVE
<receiver android:name=".MyC2DMReceiver"
            android:permission="com.google.android.c2dm.permission.SEND">
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
          <category android:name="com.package.myapp" />
      </intent-filter>
      <intent-filter>
          <action android:name="com.google.android.c2dm.intent.RECEIVE" />
          <category android:name="com.package.myapp" />
      </intent-filter>
  </receiver>