Java 为什么我的注册ID没有通过?

Java 为什么我的注册ID没有通过?,java,android,push-notification,google-cloud-messaging,amazon-sns,Java,Android,Push Notification,Google Cloud Messaging,Amazon Sns,问题可能有两个原因: 您没有获得注册值 你的日志不工作 对于案例1:调试代码并设置一些断点以查看是否获得注册代码 对于案例2:您可以尝试重新启动eclips 希望这有帮助:) 仅仅给出一些代码并不能完全描述您的问题。尝试添加一些描述。当我运行代码时,注册ID应该出现在LogCat中。但事实并非如此。因此,这意味着注册Id值是由GCM生成的。我直接从Amazon网络服务SNS获得代码,但它不起作用。你在日志中看到了什么?如果调用register方法,您应该会看到调试打印。 public cla

问题可能有两个原因:

  • 您没有获得注册值

  • 你的日志不工作

  • 对于案例1:调试代码并设置一些断点以查看是否获得注册代码

    对于案例2:您可以尝试重新启动eclips


    希望这有帮助:)

    仅仅给出一些代码并不能完全描述您的问题。尝试添加一些描述。当我运行代码时,注册ID应该出现在LogCat中。但事实并非如此。因此,这意味着注册Id值是由GCM生成的。我直接从Amazon网络服务SNS获得代码,但它不起作用。你在日志中看到了什么?如果调用
    register
    方法,您应该会看到调试打印。
    public class MessageReceivingService extends Service{
        private GoogleCloudMessaging gcm;
         public static SharedPreferences savedValues;
    
          public static void sendToApp(Bundle extras, Context context){
    
            Intent newIntent = new Intent();
            newIntent.setClass(context, AndroidMobilePushApp.class);
            newIntent.putExtras(extras);
            newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            context.startActivity(newIntent);
        }
    
        public void onCreate(){
    
            super.onCreate();
            final String preferences = getString(R.string.preferences);
            savedValues = getSharedPreferences(preferences, Context.MODE_PRIVATE);
            // In later versions multi_process is no longer the default
    
            if(VERSION.SDK_INT >  9){
                savedValues = getSharedPreferences(preferences, Context.MODE_MULTI_PROCESS);
            }
    
            gcm = GoogleCloudMessaging.getInstance(getBaseContext());
            SharedPreferences savedValues = PreferenceManager.getDefaultSharedPreferences(this);
    
    
            SharedPreferences.Editor editor1 =      savedValues.edit();
            editor1.putBoolean(getString(R.string.first_launch), true);
            editor1.commit();
    
    
            if(savedValues.getBoolean(getString(R.string.first_launch), true)){
                register();
    
                SharedPreferences.Editor editor = savedValues.edit();
                editor.putBoolean(getString(R.string.first_launch), false);
                editor.commit();
            }
            // Let AndroidMobilePushApp know we have just initialized and there may be stored messages
            sendToApp(new Bundle(), this);
        }
    
        protected static void saveToLog(Bundle extras, Context context){
            SharedPreferences.Editor editor=savedValues.edit();
            String numOfMissedMessages = context.getString(R.string.num_of_missed_messages);
            int linesOfMessageCount = 0;
            for(String key : extras.keySet()){
                String line = String.format("%s=%s", key, extras.getString(key));
                editor.putString("MessageLine" + linesOfMessageCount, line);
                linesOfMessageCount++;
            }
            editor.putInt(context.getString(R.string.lines_of_message_count), linesOfMessageCount);
            editor.putInt(context.getString(R.string.lines_of_message_count), linesOfMessageCount);
            editor.putInt(numOfMissedMessages, savedValues.getInt(numOfMissedMessages, 0) + 1);
            editor.commit();
            postNotification(new Intent(context, AndroidMobilePushApp.class), context);
        }
    
        protected static void postNotification(Intent intentAction, Context context){
            final NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    
            final PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intentAction, Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL);
            final Notification notification = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.ic_launcher)
                    .setContentTitle("Message Received!")
                    .setContentText("")
                    .setContentIntent(pendingIntent)
                    .setAutoCancel(true)
                    .getNotification();
    
            mNotificationManager.notify(R.string.notification_number, notification);
        }
    
        private void register() {
    
            new AsyncTask(){
    
                protected Object doInBackground(final Object... params) {
    
                    String token;
                    try {
                        token = gcm.register(getString(R.string.project_number));
                        Log.i("registrationId", token);
                    } 
                    catch (IOException e) {
                        Log.i("Registration Error", "mesgerror " + e.getMessage());
                    }
                    return true;
                }
            }.execute(null, null, null);
        }
    
        public IBinder onBind(Intent arg0) {
            return null;
        }
    
    }