-1

Я пытаюсь GCM в своем проекте, но я не получаю. для отладки Я поставил Toast в OnReceive, но опять же это не работает.OnReceive не работает в Android GCM

Я использую 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(); 
     } 
    } 

Мои Manifest Похож

<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

Я думаю, вы с вашей интеграцией идут не так. Обратитесь к этому https://developer.android.com/google/gcm/client.html – Fahim

+0

. Я понял одно: он отлично работает на мобильных устройствах, но не работает на genymotion. – Riyaz

+0

GCM не работает на эмуляторе, вам нужно реальное устройство для регистрации в GCM затем получите регистрацию. – MichaelP

ответ

0

После долгих исследований я понял это, что GCM не работает эмулятор

Смежные вопросы