Tuesday, April 19, 2016

Android 런쳐 뱃지 카운트 설정

내 앱의 뱃지 알림의 갯수를 런쳐쪽에 전달을 해주어야 런쳐에서 내 앱의 뱃지 갯수를 그려준다. 그래서 다음과 같이 앱에서 설정해 주어야 한다.

    public static String getLauncherClassName() {
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);

        PackageManager pm = AmandaApp.getAppContext().getPackageManager();
        List<ResolveInfo> resolveInfos = pm.queryIntentActivities(intent, 0);
        for (ResolveInfo resolveInfo : resolveInfos) {
            String pkgName = resolveInfo.activityInfo.applicationInfo.packageName;
            if (pkgName.equalsIgnoreCase(getPackageName())) {
                return resolveInfo.activityInfo.name;
            }
        }
        return null;
    }

        String launcherClassName = getLauncherClassName();
        if (launcherClassName == null) {
            return;
        }
        Intent response = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
        response.putExtra("badge_count", launcherCount);
        response.putExtra("badge_count_package_name", getPackageName());// 내 앱의 패키지명
        response.putExtra("badge_count_class_name", launcherClassName);// 런쳐의 클래스명
        AmandaApp.getAppContext().sendBroadcast(response);

No comments:

Post a Comment