Androidでクリックしたときに消えない通知を作成するにはどうすればよいですか?

int icon = R.drawable.icon4;        
CharSequence tickerText = "Hello";//ticker-text
long when = System.currentTimeMillis();         
Context context = getApplicationContext();     
CharSequence contentTitle = "Hello";  
CharSequence contentText = "Hello";      
Intent notificationIntent = new Intent(this, Example.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

これは私のためには機能しません。

私はクリック可能な通知を作成して自分のアプリに行くことができますが、クリックすると遠ざかりません。

11

5 答え

あなただけのことではなく、全体のことを読むべきです。慎重にステップバイステップで再度お読みください。

// this
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);

int icon = R.drawable.icon4;        
CharSequence tickerText = "Hello";//ticker-text
long when = System.currentTimeMillis();         
Context context = getApplicationContext();     
CharSequence contentTitle = "Hello";  
CharSequence contentText = "Hello";      
Intent notificationIntent = new Intent(this, Example.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);
Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

// and this
private static final int HELLO_ID = 1;
mNotificationManager.notify(HELLO_ID, notification);
25
追加された
setLatestEventInfo()はAPIレベル11で廃止されました。 Notification.Builder を使用してください。
追加された 著者 AnujAroshA,
私は通知のための同じコードを使用している..今私は通知でボタンを追加したい場合はどのように達成することができます...?私を助けてください
追加された 著者 ADT,
アイコンが緑色に設定されているが、通知が表示されると自動的に白に変わるという問題があります。
追加された 著者 HUSNAIN SARWAR,
int icon = R.drawable.ic_launcher;
long when = System.currentTimeMillis();
NotificationManager nm=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent=new Intent(context,MainActivity.class);
PendingIntent  pending=PendingIntent.getActivity(context, 0, intent, 0);
Notification notification;
    if (Build.VERSION.SDK_INT < 11) {
        notification = new Notification(icon, "Title", when);
        notification.setLatestEventInfo(
                context,
                "Title",
                "Text",
                pending);
    } else {
        notification = new Notification.Builder(context)
                .setContentTitle("Title")
                .setContentText(
                        "Text").setSmallIcon(R.drawable.ic_launcher)
                .setContentIntent(pending).setWhen(when).setAutoCancel(true)
                .build();
    }
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.defaults |= Notification.DEFAULT_SOUND;
nm.notify(0, notification);

Or you can Download direct tutorial from here : http://www.demoadda.com/demo/android/how-to-create-local-notification-notification-manager-demo-with-example-android-source-code_26

12
追加された
これは正しいです? PendingIntent を作成しますが、それは使用されません。少なくとも<11の場合は、 setLatestEventInfo の最後のパラメータにする必要がありますか、間違っていますか?
追加された 著者 hgoebl,
@hgoebl:私の編集を参照してください..
追加された 著者 Kishan,
アイコンが緑色に設定されているが、通知が表示されると自動的に白に変わるという問題があります。
追加された 著者 HUSNAIN SARWAR,

If you are using Android 5.0 > it became a lot easier, functionallity changed, but you can use the same code.

//Some Vars
public static final int NOTIFICATION_ID = 1; //this can be any int


//Building the Notification
NotificationCompat.Builder builder = new NotificationCompat.Builder(this);
builder.setSmallIcon(R.drawable.ic_stat_notification);
builder.setContentTitle("BasicNotifications Sample");
builder.setContentText("Time to learn about notifications!");

NotificationManager notificationManager = (NotificationManager) getSystemService(
            NOTIFICATION_SERVICE);
notificationManager.notify(NOTIFICATION_ID, builder.build());

アプリケーションコンテキストにいることを確認します。そうでない場合は、次のようにコンテキストを渡してソースコードを変更する必要があります

NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
...
..
.

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

You can see the full-source-code at: https://github.com/googlesamples/android-BasicNotifications/blob/master/Application/src/main/java/com/example/android/basicnotifications/MainActivity.java#L73

2
追加された
アイコンが緑色に設定されているが、通知が表示されると自動的に白に変わるという問題があります。
追加された 著者 HUSNAIN SARWAR,

コードはこちらです

 Intent intent = new Intent(this, MainActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
                PendingIntent.FLAG_ONE_SHOT);

        Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
        NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle("Push Notification")
                .setContentText(messageBody)
                .setAutoCancel(true)
                .setSound(defaultSoundUri)
                .setContentIntent(pendingIntent);

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

        notificationManager.notify(0, notificationBuilder.build());

Androidでクリックしたときに通知が消えないようにするにはどうすればいいですか? そうセット

setAutoCancel(false);
1
追加された
 if (android.os.Build.VERSION.SDK_INT>16)
    {
        notificationManager.notify(5, notification.build());
    }else
    {
        notificationManager.notify(5, notification.getNotification());
    }

To work in android.os.Build.VERSION.SDK_INT<16 keep in mind to do some changes

0
追加された