转载自:https://blog.csdn.net/dbs1215/article/details/53054073

**1、三星**String launcherClassName = getLauncherClassName(context);if (launcherClassName == null) {return;}Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");intent.putExtra("badge_count", count);intent.putExtra("badge_count_package_name", context.getPackageName());intent.putExtra("badge_count_class_name", launcherClassName);context.sendBroadcast(intent);**2、华为**String launcherClassName = getLauncherClassName(context);if (launcherClassName != null) {Bundle extra = new Bundle();extra.putString("package", ct.getPackageName());extra.putString("class", launcherClassName);extra.putInt("badgenumber", count);context.getContentResolver().call(Uri.parse("content://com.huawei.android.launcher.settings/badge/"), "change_badge", null, extra);}**3、MIUI**MIUI6以下Intent intent = new Intent("android.intent.action.APPLICATION_MESSAGE_UPDATE");intent.putExtra("android.intent.action.APPLICATION_MESSAGE_UPDATE","your app packageName/.LAUNCHER ActivityName");intent.putExtra(EXTRA_UPDATE_APPLICATION_MESSAGE_TEXT, unreadCount);context.sendBroadcast(intent);MIUI6以上NotificationCompat.Builder builder = new NotificationCompat.Builder(context)                .setSmallIcon(R.mipmap.ic_launcher)                .setContentTitle("小米角标")                .setContentText("miui桌面角标消息");        NotificationManagerCompat managerCompat = NotificationManagerCompat.from(context);        Notification notification = builder.build();        try {            Object miuiNotification = Class.forName("android.app.MiuiNotification").newInstance();            Field field = miuiNotification.getClass().getDeclaredField("messageCount");            field.setAccessible(true);            field.set(miuiNotification, Integer.valueOf(count));            notification.getClass().getField("extraNotification").set(notification, miuiNotification);            managerCompat.notify(0, notification);        }  catch (Exception e) {            e.printStackTrace();        }**4、Sony**Intent intent = new Intent();String launcherclassname = getLauncherClassName(context);if (launcherclassname != null) {intent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", unReadCount > 0);intent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");intent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME", launcherclassname);intent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", unReadCount < 1 ? "" : unReadCount);intent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());context.sendBroadcast(intent);}**5、VIVO**String launcherclassname = getLauncherClassName(context);if (launcherclassname != null) {Intent intent = new Intent("launcher.action.CHANGE_APPLICATION_NOTIFICATION_NUM");//Constants.KEY_PKG_NAME = "packageName"//Constants.KEY_CLASS_NAME = "className"intent.putExtra(Constants.KEY_PKG_NAME, context.getPackageName());intent.putExtra(Constants.KEY_CLASS_NAME, launcherclassname);intent.putExtra("notificationNum", unReadCount);context.sendBroadcast(intent);}**6、OPPO**try {Bundle extras = new Bundle();extras.putInt("app_badge_count", count);context.getContentResolver().call(Uri.parse("content://com.android.badge/badge"), "setAppBadgeCount", String.valueOf(count), extras);} catch (Throwable th) {}Method: getLauncherClassNamepublic static String getLauncherClassName(Context context) {       if(context == null){           return null;       }            PackageManager pm = context.getPackageManager();        Intent intent = new Intent("android.intent.action.MAIN");        intent.addCategory("android.intent.category.LAUNCHER");        try {            for (ResolveInfo resolveInfo : pm.queryIntentActivities(intent, 0)) {                if (resolveInfo.activityInfo.applicationInfo.packageName.equalsIgnoreCase(context.getPackageName())) {                    return resolveInfo.activityInfo.name;                }            }            return null;        } catch (Exception e) {            return null;        }    }**除了上述的代码,还需要在清单文件声明对应的权限**"com.sonyericsson.home.permission.BROADCAST_BADGE"/>"com.sec.android.provider.badge.permission.READ"/>"com.sec.android.provider.badge.permission.WRITE"/>"com.huawei.android.launcher.permission.CHANGE_BADGE"/>/***获取手机信息**/    private String getHandSetInfo() {          String handSetInfo = "手机型号:" + android.os.Build.MODEL                + "\n系统版本:" + android.os.Build.VERSION.RELEASE                + "\n产品型号:" + android.os.Build.PRODUCT                + "\n版本显示:" + android.os.Build.DISPLAY                + "\n系统定制商:" + android.os.Build.BRAND + "\n设备参数:" + android.os.Build.DEVICE                + "\n开发代号:" + android.os.Build.VERSION.CODENAME + "\nSDK版本号:" + android.os.Build.VERSION.SDK_INT + "\nCPU类型:" + android.os.Build.CPU_ABI + "\n硬件类型:" + android.os.Build.HARDWARE + "\n主机:" + android.os.Build.HOST + "\n生产ID:" + android.os.Build.ID + "\nROM制造商:" + android.os.Build.MANUFACTURER // 这行返回的是rom定制商的名称                 ;         return handSetInfo;    }

更多相关文章

  1. android 判断 网络 类型
  2. Android(安卓)adb命令启动系统组件
  3. Android逆向基础之Dalvik指令集
  4. android activity之间传递bean类型数据
  5. Android中Data和String数据类型转换
  6. Android(安卓)MIME类型与文件后缀名匹配部分
  7. Android获取传感器列表
  8. android 笔记:判断手机是否显示虚拟按键
  9. android打开文件及打开方式(打开程序列表)

随机推荐

  1. Android性能优化之布局优化
  2. android 中webview的屏幕适配问题
  3. android操作sdcard中的多媒体文件(一)——
  4. android 如何使用Wake Lock来节电?
  5. 多条未接来电只显示来电数,同时拨号应用通
  6. Android 开发工具介绍-SDK工具和平台工具
  7. Android(安卓)用户偏好设置,SharedPrefere
  8. 让View只显示下边框
  9. Android Jetpack系列之Lifecycle组件(一篇
  10. Android - ToolBar详解