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
希望这有帮助:) 仅仅给出一些代码并不能完全描述您的问题。尝试添加一些描述。当我运行代码时,注册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;
}
}