I have got a problem with multi line data (data that contains newline \n). These data is beeing encoded for the url call:
collapse_key=<my-collapse_key>®istration_id=<my-registrationd>
&data.text=Line1%0ALine2&data.group=This+is+a+test
I have no problem sending c2dm messages. But when I try to get my string back from the intent, der is no newline sign.
text = (String) intent.getStringExtra("text");
I guess there has been some decoding of the urlstring inside the C2DM Framework and that removed all special charaters?
It would be nice, if somebody can help me or can confirm my guess.
I found another way by modify C2DMReceiver.java as documented custom view for notification bar.
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);
}
and create layout custom_notification_layout.xml like this
<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>
Hope this helps.
Reference: Android SDK Doc