0

phonegapを使用してAndroidアプリを開発しています。通知バーからアプリを起動したい。これは重複した質問かもしれませんが、私にとっては何も機能していないようです。私が試したリンクはほとんどありません。

http://pilhuhn.blogspot.in/2010/12/pitfall-in-pendingintent-with-solution.html

PUSH通知からAndroidアプリを開く

通知項目を介してバックグラウンド アプリケーションを再度開く

このリンクから開発されたスタンドアロンアプリは機能していますが、実際のプロジェクトと統合すると、通知バーをタップしても何も起こりません。以下は私のコードです

NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

Notification notification = new Notification(R.drawable.ic_launcher,"Message received", System.currentTimeMillis());
        notification.flags |= Notification.FLAG_ONLY_ALERT_ONCE | Notification.FLAG_AUTO_CANCEL;

Intent intent = new Intent(context, MyClass.class);

intent.putExtra("message", message);
intent.putExtra("shortMsg", shortMsg);
intent.putExtra("source", source);
intent.putExtra("phone", phone);
intent.putExtra("datetime", datetime);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        notification.setLatestEventInfo(context, "Message", "New message received", pendingIntent);

notificationManager.notify(0, notification);

MyClass.classコード、

Bundle extras = getIntent().getExtras();
if (extras != null) 
{
    System.out.println("in extras");            
    //Retrive data from the intent and store them in instance variables
    this.message = extras.getString("message");
    this.shortMsg = extras.getString("shortMsg");
    this.source = extras.getString("source");
    this.phone = extras.getString("phone");
    this.datetime = extras.getString("datetime");
}

前もって感謝します、

ナナシ

4

2 に答える 2

1

NotificationCompat.Builder実装がはるかに簡単なので、私は使用します。

Intent intent = new Intent(context, Main.class);
PendingIntent pintent = PendingIntent.getActivity(context, 0, intent, 0);
mNotification = new NotificationCompat.Builder(context)
      .setContentTitle(context.getString(R.string.app_name))
      .setContentText(message)
      .setContentIntent(pintent)
      .setSmallIcon(R.drawable.ic_notification)
      .setWhen(System.currentTimeMillis())
      .setAutoCancel(cancellable ? true : false)
      .setOngoing(cancellable ? false : true)
      .build();
notificationManager.notify(0, mNotification);
于 2012-11-12T11:01:56.373 に答える
0

setContentIntent を使用して、保留中のインテントを引数として渡します。

Intent intent = new Intent(context, MyClass.class);
intent.putExtra("message", message);
intent.putExtra("shortMsg", shortMsg);
intent.putExtra("source", source);
intent.putExtra("phone", phone);
intent.putExtra("datetime", datetime);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pintent = PendingIntent.getActivity(context, 0, intent, 0);

mNotification = new NotificationCompat.Builder(context)
      .setContentTitle(context.getString(R.string.app_name))
      .setContentText(message)
      .setContentIntent(pintent)
      .setSmallIcon(R.drawable.ic_notification)
      .setContentIntent(pintent)
      .build();
notificationManager.notify(0, mNotification);
于 2016-05-10T06:53:32.760 に答える