Rag*_*hav 6 android push-notification google-cloud-messaging
我创建了一个GCM Intent服务,该设备已成功注册.我也收到了REGISTRATION Intent,但OnMessage或OnRegistered方法没有被调用.
我看到日志下面.
07-23 06:24:23.542: V/GCMBroadcastReceiver(1168): onReceive: com.google.android.c2dm.intent.REGISTRATION
07-23 06:24:23.542: V/GCMBroadcastReceiver(1168): GCM IntentService class: com.app.demo.myApp.GCMIntentService
07-23 06:24:23.581: V/GCMBaseIntentService(1168): Acquiring wakelock
Run Code Online (Sandbox Code Playgroud)
下面是OnMessage的代码.
有人可以帮我解释为什么OnRegistered或OnMessage没有被调用.
public class GCMIntentService extends GCMBaseIntentService {
@Override
protected void onMessage(Context arg0, Intent arg1) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "registered", Toast.LENGTH_LONG).show();
String device_id = GCMRegistrar.getRegistrationId(this);
GSLogger.Log("mess_received", device_id);
}
@Override
protected void onRegistered(Context context, String arg1) {
Toast.makeText(context, "registered", Toast.LENGTH_LONG).show();
String device_id = GCMRegistrar.getRegistrationId(this);
GSLogger.Log("registered", device_id);
}
}
Run Code Online (Sandbox Code Playgroud)
清单代码:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="8" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-configuration android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="com.google.android.c2dm.permission.C2D_MESSAGE"/>
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<permission android:name="com.app.demo.myApp.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.app.demo.myApp.permission.C2D_MESSAGE" />
Run Code Online (Sandbox Code Playgroud)
清单中的接收器代码:
<receiver
android:name="com.google.android.gcm.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.app.demo.myApp" />
</intent-filter>
</receiver>
<service android:name="com.app.demo.myApp.GCMIntentService" />
Run Code Online (Sandbox Code Playgroud)
我的套餐图片:

Nar*_*gis 24
问题是
<service android:name="com.app.demo.myApp.GCMIntentService" />
Run Code Online (Sandbox Code Playgroud)
请给
<service android:name=".GCMIntentService" />
Run Code Online (Sandbox Code Playgroud)
并将GCMIntentService Java文件放在清单中包名称指定的文件夹中.
例如,如果您已将com.app.demo.myApp声明为应用程序包名称
将GCMIntentService放在相同的文件夹结构中.
| 归档时间: |
|
| 查看次数: |
8966 次 |
| 最近记录: |