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 콜백입니다.*/@Overrideprotected void onMessageCanceled(PushMessage message) { super.onMessageCanceled(message);
if (!message.isSilent()) { /** * 이 예시에서는 임의의 알림 수가 간단히 표시됩니다. * 알림 수를 계산하는 로직은 직접 구현해야 합니다. */ int notificationCount = 0;
if (getApplicationContext() != null) { MyPushReceiver.changeAppIcon(getApplicationContext(), notificationCount); } }}- 완료!