ตัวอย่างนี้สาธิตเกี่ยวกับวิธีที่ฉันสามารถสกัดกั้นการแจ้งเตือนแถบสถานะใน Android
ขั้นตอนที่ 1 − สร้างโครงการใหม่ใน Android Studio ไปที่ไฟล์ ⇒ โครงการใหม่และกรอกรายละเอียดที่จำเป็นทั้งหมดเพื่อสร้างโครงการใหม่
ขั้นตอนที่ 2 − เพิ่มรหัสต่อไปนี้ใน src/MyListener.java
อินเทอร์เฟซสาธารณะ MyListener { โมฆะ setValue (ชื่อแพ็คเกจสตริง);}
ขั้นตอนที่ 3 − เพิ่มรหัสต่อไปนี้ใน src/MyListener.java
แพ็คเกจ app.tutorialspoint.com.notifyme;นำเข้า android.content.Context;นำเข้า android.service.notification.NotificationListenerService;นำเข้า android.service.notification.StatusBarNotification;นำเข้า android.util.Log;คลาสสาธารณะ NotificationService ขยาย NotificationListenerService { TAG สตริงส่วนตัว =this .getClass().getSimpleName(); บริบทบริบท; คงที่ MyListener myListener; @แทนที่โมฆะสาธารณะ onCreate () { super .onCreate(); บริบท =getApplicationContext(); } @แทนที่โมฆะสาธารณะ onNotificationPosted (StatusBarNotification sbn) { บันทึก ฉัน ( TAG "************ onNotificationPosted" ); บันทึก. ฉัน ( TAG , "ID :" + sbn.getId() + " \t " + sbn.getNotification(). tickerText + " \t " + sbn.getPackageName()); myListener .setValue( "โพสต์:" + sbn.getPackageName()); } @แทนที่โมฆะสาธารณะ onNotificationRemoved (StatusBarNotification sbn) { บันทึก ฉัน ( TAG "************ onNotificationRemoved" ); บันทึก. ฉัน ( TAG , "ID :" + sbn.getId() + " \t " + sbn.getNotification(). tickerText + " \t " + sbn.getPackageName()); myListener .setValue( "ลบ:" + sbn.getPackageName()); } โมฆะสาธารณะ setListener (MyListener myListener) { บริการแจ้งเตือน myListener =myListener; }}
ขั้นตอนที่ 4 − เพิ่มรหัสต่อไปนี้ใน res/menu/menu_main.xml
<ก่อน> เวอร์ชัน xml ="1.0" การเข้ารหัส ="utf-8" ?><เมนู xmlns:android ="https://schema.android.com/apk/res/android" xmlns:app ="https://schema.android .com/apk/res-auto" xmlns:tools ="https://schemas.android.com/tools" tools :context =".MainActivity"> <รายการ android :id ="@+id/action_settings" android :orderInCategory ="100" android :title ="การตั้งค่า" แอพ :showAsAction ="ไม่เคย" />ขั้นตอนที่ 5 − เพิ่มรหัสต่อไปนี้ใน res/layout/activity_main.xml
<ก่อน> เวอร์ชัน xml ="1.0" การเข้ารหัส ="utf-8" ?>ขั้นตอนที่ 6 − เพิ่มรหัสต่อไปนี้ใน src/MainActivity.java
แพ็คเกจ app.tutorialspoint.com.notifyme;นำเข้า android.app.NotificationChannel;นำเข้า android.app.NotificationManager;นำเข้า android.content.Intent;นำเข้า android.os.Bundle;นำเข้า android.support.v4.app.NotificationCompat นำเข้า android.support.v7.app.AppCompatActivity นำเข้า android.view.Menu นำเข้า android.view.MenuItem นำเข้า android.view.View นำเข้า android.widget.ปุ่ม นำเข้า android.widget.TextView คลาสสาธารณะ MainActivity ขยาย AppCompatActivity ใช้ MyListener { TextView ส่วนตัว txtView; สตริงสุดท้ายแบบคงที่สาธารณะ NOTIFICATION_CHANNEL_ID ="10001"; สตริงคงที่ส่วนตัวสุดท้าย default_notification_channel_id ="default"; @Override ป้องกันโมฆะ onCreate (Bundle saveInstanceState) { super .onCreate (savedInstanceState); setContentView(R.layout. activity_main ); new NotificationService().setListener( นี่ ); txtView =findViewById(ร.ด. textView ); ปุ่ม btnCreateNotification =findViewById(R.id. btnCreateNotification ); btnCreateNotification.setOnClickListener ( View.OnClickListener ใหม่ () { @Override public void onClick (View v) { NotificationManager mNotificationManager =(NotificationManager) getSystemService ( NOTIFICATION_SERVICE ); NotificationCompat.Builder mBuilder =ใหม่ NotificationCompat.Builder (MainActivity. this, default_notification) .setContentTitle ( "การแจ้งเตือนของฉัน" ); mBuilder.setContentText ( "ตัวอย่างบริการตัวฟังการแจ้งเตือน" ); mBuilder.setTicker ( "ตัวอย่างบริการตัวฟังการแจ้งเตือน" ); mBuilder.setSmallIcon (R.drawable. ic_launcher_foreground ); mCanmBuilder true .set; if (android.os.Build.VERSION. SDK_INT>=android.os.Build.VERSION_CODES. O ) { ความสำคัญจริง =NotificationManager. IMPORTANCE_HIGH; NotificationChannel notificationChannel =new NotificationChannel ( NOTIFICATION_CHANNEL_ID , "NOTIFICA TION_CHANNEL_NAME" ความสำคัญ); mBuilder.setChannelId ( NOTIFICATION_CHANNEL_ID ); ยืนยัน mNotificationManager !=null; mNotificationManager.createNotificationChannel (ช่องแจ้งเตือน); } ยืนยัน mNotificationManager !=null; mNotificationManager.notify(( int ) ระบบ currentTimeMillis () , mBuilder.build()); } }); } @แทนที่บูลีนสาธารณะ onCreateOptionsMenu (เมนูเมนู) { getMenuInflater().inflate(R.menu. menu_main , เมนู); // ทรัพยากรเมนู เมนูคืนค่าจริง } @แทนที่บูลีนสาธารณะ onOptionsItemSelected (รายการเมนู) { สวิตช์ (item.getItemId ()) { กรณี R.id action_settings :เจตนาเจตนา =เจตนาใหม่ ("android.settings.ACTION_NOTIFICATION_LISTENER_SETTINGS" ); startActivity(เจตนา); คืนค่าจริง; default :return super .onOptionsItemSelected(item); } } @Override โมฆะสาธารณะ setValue (ชื่อแพ็คเกจสตริง) { txtView .append ( " \n " + packageName); }}
ขั้นตอนที่ 7 − เพิ่มรหัสต่อไปนี้ใน AndroidManifest.xml
<ก่อน> เวอร์ชัน xml ="1.0" การเข้ารหัส ="utf-8" ?><แสดง xmlns:android ="https://schema.android.com/apk/res/android" package ="app.tutorialspoint.com.notifyme">มาลองเรียกใช้แอปพลิเคชันของคุณกัน ฉันคิดว่าคุณได้เชื่อมต่ออุปกรณ์มือถือ Android จริงกับคอมพิวเตอร์ของคุณ ในการรันแอพจาก android studio ให้เปิดไฟล์กิจกรรมของโปรเจ็กต์แล้วคลิกไอคอน Run จากแถบเครื่องมือ เลือกอุปกรณ์มือถือของคุณเป็นตัวเลือก แล้วตรวจสอบอุปกรณ์มือถือของคุณซึ่งจะแสดงหน้าจอเริ่มต้นของคุณ -