Да, C2DM - это решение для Android Push. На странице https://github.com/awysocki/C2DM-PhoneGap вы можете найти пример реализации.
Файлы в com.google имен должны быть включены без изменений, они с сессии «Google IO Session Обзор: Android + App Engine: разработчик Мечта Комбинация», см http://bradabrams.com/2011/05/google-io-session-overview-android-app-engine-a-developers-dream-combination/
Итак, это шаги, которые необходимо выполнить:
- Добавьте 3 com.google классов в проекте
- Создайте класс
C2DMReceiver
(именования), который наследуется от C2DMBaseReceiver
и реализовать необходимые абстрактные события
- Настройка AndroidManifest.xml
AndroidManifest выглядит
<!-- set up an own permission to secure our C2DM mesages -->
<permission android:name="your.namespace.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<!-- List of permission -->
<uses-permission android:name="your.namespace.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application ..>
<!-- Your implementation of the class C2DMReceiver, base class is Googles C2DMBaseReceiver -->
<service android:name=".C2DMReceiver" />
<!-- Googles broadcast receiver, it delegates to your.namespace.C2DMReceiver -->
<receiver
android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="your.namespace" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="your.namespace" />
</intent-filter>
</receiver>
</application>
Если вы получаете на эмуляторе сообщение об ошибке "E/CSE Notifications (401): Ошибка регистрации ACCOUNT_MISSING", у вас есть добавить аккаунт Google в свой эмулятор.
Для вашего второго вопроса: это зависит от того, что вы хотите сделать. Когда вы получите сообщение, и вы просто хотите отобразить уведомление, чтобы пользователь мог запустить ваше приложение, вам не нужен плагин Phonegap. В этом случае вы можете решить все в Java.