c2dm - 使用多行发送数据

Mar*_*ark 4 android android-c2dm

我遇到了多行数据的问题(包含换行符的数据\n).这些数据是为url调用编码的:

collapse_key=<my-collapse_key>&registration_id=<my-registrationd>
&data.text=Line1%0ALine2&data.group=This+is+a+test
Run Code Online (Sandbox Code Playgroud)

发送c2dm消息没问题.但是当我试图从意图中恢复我的字符串时,der不是换行符号.

    text = (String) intent.getStringExtra("text");
Run Code Online (Sandbox Code Playgroud)

我想在C2DM框架内对urlstring进行了一些解码并删除了所有特殊字符?

如果有人可以帮助我或者可以证实我的猜测,那就太好了.

Jir*_*ong 5

我通过修改C2DMReceiver.java找到了另一种方法,作为通知栏的文档自定义视图.

在此输入图像描述

protected void sendnotification (String title, String message) {
       String ns = Context.NOTIFICATION_SERVICE;

       NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

       int icon = R.drawable.icon100;

       RemoteViews contentView = new RemoteViews(getPackageName(), R.layout.custom_notification_layout);
       contentView.setImageViewResource(R.id.image, R.drawable.icon100);
       contentView.setTextViewText(R.id.text, message);

       CharSequence tickerText = message;
       long when = System.currentTimeMillis();

       Notification notification = new Notification(icon, tickerText, when);
       notification.contentView = contentView;

       Intent notificationIntent = new Intent(this, Startup.class);

       PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

       notification.flags = Notification.FLAG_AUTO_CANCEL;
       notification.contentIntent = contentIntent;

       Random randInt = new Random();
       int id = randInt.nextInt(100) - 1;
       mNotificationManager.notify(id, notification);
    }
Run Code Online (Sandbox Code Playgroud)

并像这样创建布局custom_notification_layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="horizontal"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:padding="3dp"
              >
    <ImageView android:id="@+id/image"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:layout_marginRight="10dp"
              />
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="fill_parent"
              android:textColor="#000"
              />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

参考:Android SDK Doc