原标题:Android应用推送角标设置方法
Android最初原生是没有角标的,各大手机厂商推出了角标,适配也是相对麻烦,需要去适配各家,这里做了整理及使用方法
先把工具类贴出来
importandroid.app.Notification;
importandroid.app.NotificationChannel;
importandroid.app.NotificationManager;
importandroid.app.PendingIntent;
importandroid.content.AsyncQueryHandler;
importandroid.content.ComponentName;
importandroid.content.ContentResolver;
importandroid.content.ContentValues;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.pm.PackageManager;
importandroid.content.pm.ResolveInfo;
importandroid.graphics.BitmapFactory;
importandroid.net.Uri;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.os.Handler;
importandroid.support.v4.app.NotificationCompat;
importandroid.text.TextUtils;
importandroid.util.Log;
importjava.lang.reflect.Field;
importjava.lang.reflect.Method;
importjava.util.ArrayList;
importjava.util.List;
importcn.com.goldwind.eis.R;
importcn.com.goldwind.eis.ui.activity.MainActivity;
/**
* 应用角标工具类
*/
publicclassAppShortCutUtil{
privatestaticintnotificationId = 0;
publicstaticbooleansetCount(finalintcount, finalContext context){
if(count >= 0&& context != null) {
Log.d( "BRAND", Build.BRAND);
switch(Build.BRAND.toLowerCase) {
case"xiaomi":
newHandler.postDelayed( newRunnable {
@Override
publicvoidrun{
setNotificationBadge(count, context);
}
}, 3000
returntrue;
case"huawei":
returnsetHuaweiBadge(count, context);
case"honor":
returnsetHonorBadge(count, context);
case"samsung":
returnsetSamsungBadge(count, context);
case"oppo":
returnsetOPPOBadge(count, context) || setOPPOBadge2(count, context);
case"vivo":
returnsetVivoBadge(count, context);
case"lenovo":
returnsetZukBadge(count, context);
case"htc":
returnsetHTCBadge(count, context);
case"sony":
returnsetSonyBadge(count, context);
default:
returnsetNotificationBadge(count, context);
}
} else{
returnfalse;
}
}
publicstaticbooleansetNotificationBadge(intcount, Context context){
NotificationManager notificationManager = (NotificationManager) context.getSystemService
(Context.NOTIFICATION_SERVICE);
if(notificationManager == null) {
returnfalse;
}
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {