GCM couldnt receive message

后端 未结 1 2032
一生所求
一生所求 2020-12-22 08:43

Server:

var GCM = require(\'gcm\').GCM;

var apiKey = \'XXXXXXXXXXXXXXXXXXXXXXXXXXXX\';
var gcm = new GCM(apiKey);

var message = {
    registration_id: \'AP         


        
1条回答
  •  青春惊慌失措
    2020-12-22 09:17

    Check This code It may be help you :

    protected void gcm() {
        // TODO Auto-generated method stub
        GCMHelper gcmhelper = new GCMHelper();
        String gcmtokenAlready = gcmhelper.alreadyregisterGCM();
        if(gcmtokenAlready.length()>0){
    
            To do code here
    
        }else{
            gcmhelper.registerGCM();
        }
    

    //GCMHelper

    public class GCMHelper {
    private final String SENDER_ID = ContextProvider.getContext().getResources().getString(R.string.GCM_ID);
    private final Context context = ContextProvider.getContext();
    /**
     *  This method is used to register the device with the GCM.
     *
     * @param context the context
     */
    public void registerGCM() {
        GCMRegistrar.checkDevice(context);
        GCMRegistrar.checkManifest(context);        
        GCMRegistrar.register(context, SENDER_ID);
    }
    
    /**
     * Already register gcm.
     *
     * @param context the context
     * @return the string
     */
    public String alreadyregisterGCM() {
        GCMRegistrar.checkDevice(context);
        GCMRegistrar.checkManifest(context);
        return GCMRegistrar.getRegistrationId(context);
    }
    

    }

    //GCMIntentService
    //Note Put this class in main package of your Application.

    public class GCMIntentService extends GCMBaseIntentService {
    
    /**
     * Instantiates a new GCM intent service.
     */
    public GCMIntentService() {
        super(ContextProvider.getContext().getResources().getString(R.string.GCM_ID));
    }
    
    /*
     * (non-Javadoc)
     * 
     * @see
     * com.google.android.gcm.GCMBaseIntentService#onError(android.content.Context
     * , java.lang.String)
     */
    @Override
    protected void onError(Context arg0, String arg1) {
        // TODO Auto-generated method stub
        Log.d(TAG, "Error: " + "sError");
    }
    
    /*
     * @see Used when message comes form GCM server. Call your notification
     * class here
     */
    
    /* (non-Javadoc)
     * @see com.google.android.gcm.GCMBaseIntentService#onMessage(android.content.Context, android.content.Intent)
     */
    @Override
    protected void onMessage(Context context, Intent arg1) {
        // TODO Auto-generated method stub
        String notiData = arg1.getStringExtra("message");
        /**Start BroadCast*/
        Intent mintent = new Intent("PAYMENT_STATUS_MESSAGE");
        mintent.putExtra("PAYMENT_STATUS_MESSAGE", notiData);
        //Send BroadCast
        sendBroadcast(mintent);
        //Generate Notification
        generateNotification(context, notiData);
    }
    
    /*
     * (non-Javadoc)
     * 
     * @see
     * com.google.android.gcm.GCMBaseIntentService#onRegistered(android.content
     * .Context, java.lang.String)
     */
    @Override
    protected void onRegistered(Context context, String token) {
        /** Saving the device token in the Application Class */
        Log.v(TAG, "Registered First Time");
    
    }
    
    
    /* (non-Javadoc)
     * @see com.google.android.gcm.GCMBaseIntentService#onUnregistered(android.content.Context, java.lang.String)
     */
    @Override
    protected void onUnregistered(Context arg0, String arg1) { }
    
    /**
     * Issues a notification to inform the user that server has sent a message.
     *
     * @param context the context
     * @param message the message
     */
    private void generateNotification(Context context, String message) {
        long when = System.currentTimeMillis();
        NotificationManager notificationManager = (NotificationManager)   context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.ic_launcher, message, when);         
        String title = "New POC Alert";         
        Intent notificationIntent = new Intent(context, null);
        // set intent so it does not start a new activity
        notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
        PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
        notification.setLatestEventInfo(context, title, message, intent);
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
    
        // Play default notification sound
        notification.defaults |= Notification.DEFAULT_SOUND;
    
        // Vibrate if vibrate is enabled
        notification.defaults |= Notification.DEFAULT_VIBRATE;
        notificationManager.notify(0, notification);
    }
    

    }

    //Mainfest Config

      
    
    
    
    
     
    
    
    
    
    
      
        
            
                
                
    
                
            
        
    
        
    

    *Note please change the package name According to your application main package.

    0 讨论(0)
提交回复
热议问题