0

gcm サービスを使用する gcm クラスがあります。

public class GCMIntentService extends GCMBaseIntentService {

private static final String TAG = "GCMIntentService";

public GCMIntentService() {
    super("726233487705");
}

@Override
protected void onRegistered(Context context, String registrationId) {
    Log.i(TAG, "Device registered: regId = " + registrationId);
}

@Override
protected void onUnregistered(Context context, String registrationId) {
    Log.i(TAG, "Device unregistered");
}

@Override
protected void onDeletedMessages(Context context, int total) {
    Log.i(TAG, "Received deleted messages notification");
}

@Override
public void onError(Context context, String errorId) {
    Log.i(TAG, "Received error: " + errorId);
}

@Override
protected boolean onRecoverableError(Context context, String errorId) {
    // log message
    Log.i(TAG, "Received recoverable error: " + errorId);
    return super.onRecoverableError(context, errorId);
}

/**
 * Issues a notification to inform the user that server has sent a message.
 */
private static void generateNotification(Context context, String message) {
    System.out.println(message);
}

@Override
protected void onMessage(Context context, Intent intent) {
    String msg = intent.getExtras().getString("id");
    System.out.println(msg);
}

}

しかし、クラスを実行してアクティビティで通知を受け取る方法がわかりません

私の場合、サーバーでメッセージを送信すると、 OnMessage は何もしません

ありがとう

4

1 に答える 1

1

メイン アクティビティまたはアプリケーション onCreate で次のコードを記述しましたか?:

GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
final String regId = GCMRegistrar.getRegistrationId(this);
if (regId.equals("")) {
  GCMRegistrar.register(this, SENDER_ID);
} else {
  Log.v(TAG, "Already registered");
}

ソース: http://developer.android.com/google/gcm/gs.html

許可も忘れずに確認してください。

于 2013-04-08T19:58:05.850 に答える