เปลี่ยนไอคอนแอป Android
หากต้องการเปลี่ยนไอคอนแอปพลิเคชันตามจำนวนการแจ้งเตือนในศูนย์การแจ้งเตือน ให้ทำตามขั้นตอนด้านล่างนี้
- เพิ่มไอคอนใหม่ไปยังโปรเจกต์ของคุณในโฟลเดอร์ ‘mipmap’

- สร้างคลาส Activity ใหม่
import android.os.Bundle;import androidx.appcompat.app.AppCompatActivity;
public class MainActivityAlias extends AppCompatActivity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);
}}
- สร้างคลาสพร้อมตรรกะสำหรับการเปลี่ยนไอคอน
import android.content.ComponentName;import android.content.Context;import android.content.pm.PackageManager;
public class MyPushReceiver {
public static void changeAppIcon(Context context, int count) { PackageManager pm = context.getPackageManager(); if (count > 0) { pm.setComponentEnabledSetting( new ComponentName(context, "com.example.app.MainActivityAlias"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP ); pm.setComponentEnabledSetting( new ComponentName(context, "com.example.app.MainActivity"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP ); } else { pm.setComponentEnabledSetting( new ComponentName(context, "com.example.app.MainActivity"), PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP ); pm.setComponentEnabledSetting( new ComponentName(context, "com.example.app.MainActivityAlias"), PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP ); } }}
- ในคลาส NotificationServiceExtension ของคุณ ให้ใช้การติดตามสำหรับการรับ/ลบการแจ้งเตือนแบบพุช
@Overridepublic boolean onMessageReceived(final PushMessage message) { super.onMessageReceived(message);
if (!message.isSilent()) { /** * ในตัวอย่างนี้ จะมีการระบุจำนวนการแจ้งเตือนแบบสุ่ม * คุณต้องใช้ตรรกะสำหรับการนับการแจ้งเตือนด้วยตัวเอง */ int notificationCount = 1;
if (getApplicationContext() != null) { MyPushReceiver.changeAppIcon(getApplicationContext(), notificationCount); } }}
/*** Pushwoosh callback สำหรับการติดตามการลบการแจ้งเตือนแบบพุชออกจากศูนย์การแจ้งเตือน*/@Overrideprotected void onMessageCanceled(PushMessage message) { super.onMessageCanceled(message);
if (!message.isSilent()) { /** * ในตัวอย่างนี้ จะมีการระบุจำนวนการแจ้งเตือนแบบสุ่ม * คุณต้องใช้ตรรกะสำหรับการนับการแจ้งเตือนด้วยตัวเอง */ int notificationCount = 0;
if (getApplicationContext() != null) { MyPushReceiver.changeAppIcon(getApplicationContext(), notificationCount); } }}
- เสร็จสิ้น!
ตัวอย่างลักษณะที่ปรากฏบนอุปกรณ์
Anchor link to