ข้ามไปยังเนื้อหา

เปลี่ยนไอคอนแอป Android

หากต้องการเปลี่ยนไอคอนแอปพลิเคชันตามจำนวนการแจ้งเตือนในศูนย์การแจ้งเตือน ให้ทำตามขั้นตอนด้านล่างนี้

  1. เพิ่มไอคอนใหม่ไปยังโปรเจกต์ของคุณในโฟลเดอร์ ‘mipmap’
  1. สร้างคลาส 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);
}
}
  1. สร้างคลาสพร้อมตรรกะสำหรับการเปลี่ยนไอคอน
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
);
}
}
}
  1. ในคลาส NotificationServiceExtension ของคุณ ให้ใช้การติดตามสำหรับการรับ/ลบการแจ้งเตือนแบบพุช
@Override
public boolean onMessageReceived(final PushMessage message) {
super.onMessageReceived(message);
if (!message.isSilent()) {
/**
* ในตัวอย่างนี้ จะมีการระบุจำนวนการแจ้งเตือนแบบสุ่ม
* คุณต้องใช้ตรรกะสำหรับการนับการแจ้งเตือนด้วยตัวเอง
*/
int notificationCount = 1;
if (getApplicationContext() != null) {
MyPushReceiver.changeAppIcon(getApplicationContext(), notificationCount);
}
}
}
/**
* Pushwoosh callback สำหรับการติดตามการลบการแจ้งเตือนแบบพุชออกจากศูนย์การแจ้งเตือน
*/
@Override
protected void onMessageCanceled(PushMessage message) {
super.onMessageCanceled(message);
if (!message.isSilent()) {
/**
* ในตัวอย่างนี้ จะมีการระบุจำนวนการแจ้งเตือนแบบสุ่ม
* คุณต้องใช้ตรรกะสำหรับการนับการแจ้งเตือนด้วยตัวเอง
*/
int notificationCount = 0;
if (getApplicationContext() != null) {
MyPushReceiver.changeAppIcon(getApplicationContext(), notificationCount);
}
}
}
  1. เสร็จสิ้น!

ตัวอย่างลักษณะที่ปรากฏบนอุปกรณ์

Anchor link to