我正在我的项目中尝试GCM,但我没有通过。 调试我把Toast放在OnReceive中,但再次没有用。
我正在使用genymotion,但是当我在移动设备上安装APK时,它运行正常。
我的代码
Intent RegInt = new Intent("com.google.android.c2dm.intent.REGISTER");
RegInt.putExtra("app", PendingIntent.getBroadcast(Home.this, 0, new Intent(), 0));
RegInt.putExtra("sender", "123456");
startService(RegInt);
我的OnReceive是
@Override
public void onReceive(Context arg0, Intent arg1) {
String action = "";
action = arg1.getAction();
String regId = "";
if (action.equals("com.google.android.c2dm.intent.REGISTRATION")) {
regId = arg1.getStringExtra("registration_id");
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(arg0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("reg", regId);
editor.putString("valid", "1");
editor.commit();
Toast.makeText(arg0, "Action: " + arg1.getAction(), Toast.LENGTH_SHORT).show();
}
}
我的清单看起来像
<receiver
android:name="my.package.riyaz.MyReceiver"
android:enabled="true"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="my.package.riyaz" android:scheme="package" />
</intent-filter>
</receiver>
答案 0 :(得分:0)
经过大量研究后我发现GCM不能正常运行模拟器