আমি একটি অ্যাপ্লিকেশন তৈরি করেছি এবং একটি ইভেন্টের সাথে আমি অ্যান্ড্রয়েড বিজ্ঞপ্তি বারে বিজ্ঞপ্তি যুক্ত করতে পরিচালনা করি। এখন আমার নমুনা দরকার কীভাবে কোনও ইভেন্টের নোটিফিকেশন বার থেকে সেই বিজ্ঞপ্তিটি সরিয়ে নেওয়া যায় ??
আমি একটি অ্যাপ্লিকেশন তৈরি করেছি এবং একটি ইভেন্টের সাথে আমি অ্যান্ড্রয়েড বিজ্ঞপ্তি বারে বিজ্ঞপ্তি যুক্ত করতে পরিচালনা করি। এখন আমার নমুনা দরকার কীভাবে কোনও ইভেন্টের নোটিফিকেশন বার থেকে সেই বিজ্ঞপ্তিটি সরিয়ে নেওয়া যায় ??
উত্তর:
এটি বেশ সহজ। আপনাকে কল করতে হবে cancel
বা cancelAll
আপনার নোটিফিকেশন ম্যানেজারে যেতে হবে। বাতিল পদ্ধতির পরামিতি হ'ল নোটিফিকেশনটির আইডি যা বাতিল করা উচিত।
এপিআই দেখুন: http://developer.android.com/references/android/app/NotificationsManager.html#cancel(int)
আপনি এই দ্রুত কোড চেষ্টা করতে পারেন
public static void cancelNotification(Context ctx, int notifyId) {
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager nMgr = (NotificationManager) ctx.getSystemService(ns);
nMgr.cancel(notifyId);
}
আপনি cancelAll
বিজ্ঞপ্তি পরিচালককেও কল করতে পারেন , যাতে আপনাকে বিজ্ঞপ্তি আইডির বিষয়েও চিন্তা করতে হবে না।
NotificationManager notifManager= (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifManager.cancelAll();
সম্পাদনা: আমি হ্রাস পেয়েছি তাই সম্ভবত আমার উল্লেখ করা উচিত যে এটি কেবলমাত্র আপনার অ্যাপ্লিকেশন থেকে বিজ্ঞপ্তি সরিয়ে ফেলবে।
startForeground(NOTIFICATION_ID, mNotification);
কেবলমাত্র নিম্নলিখিত কোডের মতো সেটআউটোক্যান্সেল (ট্রু) সেট করুন:
Intent resultIntent = new Intent(GameLevelsActivity.this, NotificationReceiverActivityAdv.class);
PendingIntent resultPendingIntent =
PendingIntent.getActivity(
GameLevelsActivity.this,
0,
resultIntent,
PendingIntent.FLAG_UPDATE_CURRENT
);
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
getApplicationContext()).setSmallIcon(R.drawable.icon)
.setContentTitle(adv_title)
.setContentText(adv_desc)
.setContentIntent(resultPendingIntent)
//HERE IS WHAT YOY NEED:
.setAutoCancel(true);
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
manager.notify(547, mBuilder.build());`
এইটা সাহায্য করবে:
NotificationManager mNotificationManager = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
mNotificationManager.cancelAll();
এটি অ্যাপ্লিকেশন দ্বারা তৈরি সমস্ত বিজ্ঞপ্তি অপসারণ করা উচিত
এবং যদি আপনি কল করে কোনও বিজ্ঞপ্তি তৈরি করেন
startForeground();
একটি পরিষেবা ভিতরে। আপনি কল করতে হতে পারে
stopForeground(false);
প্রথমে নোটিফিকেশন বাতিল করুন।
আপনি যদি এমন কোনও পরিষেবা থেকে বিজ্ঞপ্তি তৈরি করছেন যা অগ্রভাগে ব্যবহার করে শুরু করা হয়েছে
startForeground(NOTIFICATION_ID, notificationBuilder.build());
তারপরে জারি করা হচ্ছে
notificationManager.cancel(NOTIFICATION_ID);
বিজ্ঞপ্তি বাতিল করার কাজ করে না এবং বিজ্ঞপ্তিটি এখনও স্ট্যাটাস বারে উপস্থিত হয়। এই বিশেষ ক্ষেত্রে, আপনি এটি 2 উপায়ে সমাধান করবেন:
1> পরিষেবাটির অভ্যন্তরে স্টপফোরগ্রাউন্ড (মিথ্যা) ব্যবহার করা:
stopForeground( false );
notificationManager.cancel(NOTIFICATION_ID);
2> কলিং ক্রিয়াকলাপ সহ সেই পরিষেবা শ্রেণিটি ধ্বংস করুন:
Intent i = new Intent(context, Service.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
if(ServiceCallingActivity.activity != null) {
ServiceCallingActivity.activity.finish();
}
context.stopService(i);
দ্বিতীয় উপায় সঙ্গীত প্লেয়ার বিজ্ঞপ্তি বেশি পছন্দ কারণ থাই উপায় না শুধুমাত্র বিজ্ঞপ্তি সরান, প্লেয়ার এছাড়াও সরান ... !!
stopForeground(true); manager.cancelAll();
কি এটা আমার জন্য মীমাংসিত!
দয়া করে এটি চেষ্টা করুন,
public void removeNotification(Context context, int notificationId) {
NotificationManager nMgr = (NotificationManager) context.getApplicationContext()
.getSystemService(Context.NOTIFICATION_SERVICE);
nMgr.cancel(notificationId);
}
আপনার বিজ্ঞপ্তি বাতিল করতে নোটিফিকেশন ম্যানেজারটি ব্যবহার করুন। আপনার কেবলমাত্র আপনার বিজ্ঞপ্তি আইডি সরবরাহ করতে হবে
mNotificationManager.cancel (YOUR_NOTIFICATION_ID);
এই লিঙ্কটিও দেখুন বিকাশকারী লিঙ্কটি দেখুন
NotificationManager.cancel(id)
সঠিক উত্তর। তবুও আপনি পুরো বিজ্ঞপ্তি চ্যানেলটি মোছার মাধ্যমে অ্যান্ড্রয়েড ওরিও এবং পরে বিজ্ঞপ্তিগুলি সরাতে পারেন । এটি মুছে ফেলা চ্যানেলের সমস্ত বার্তা মুছে ফেলা উচিত।
এখানে অ্যান্ড্রয়েড ডকুমেন্টেশন থেকে উদাহরণ দেওয়া হয়েছে :
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// The id of the channel.
String id = "my_channel_01";
mNotificationManager.deleteNotificationChannel(id);
অ্যান্ড্রয়েড এপিআই> = ২৩ এ আপনি কোনও ধরণের বিজ্ঞপ্তি মুছে ফেলতে এরকম কিছু করতে পারেন।
for (StatusBarNotification statusBarNotification : mNotificationManager.getActiveNotifications()) {
if (KEY_MESSAGE_GROUP.equals(statusBarNotification.getGroupKey())) {
mNotificationManager.cancel(statusBarNotification.getId());
}
}