Android之在app圖示新增角標
在做一些推送服務的時候,想在應用圖示上新增未讀訊息,Android桌面角標的適配確實是非常坑爹的需求。原生系統根本就沒有這個功能,國內很多廠家效仿ios都自己定義了該功能。
現在就為大家介紹部分機型新增角標的程式碼。
1、華為手機上顯示角標:(已通過)
//新增許可權
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE"/>
新增如下程式碼:
String launcherClassName = "com.redfinger.huaweichangebadge.MainActivity";//啟動的Activity完整名稱
Bundle localBundle = new Bundle();//需要儲存的資料
localBundle.putString("package",context.getPackageName());//包名
localBundle.putString("class",launcherClassName);
localBundle.putInt("badgenumber",99);//未讀資訊條數
getContentResolver().call(
Uri.parse("content://com.huawei.android.launcher.settings/badge/"),
"change badge",null,localBundle);
2、小米手機上顯示角標:(已通過)
private void setXiaoMiBadge(Context context,int number){
try{
Class miuiNotificationClass = Class.forName("android.app.MiuiNotification");
Object miuiNotification = miuiNotificationClass.newInstance();
Field field = miuiNotification.getClass().getDeclaredField("messageCount");
field.setAccessible(true);
field.set(miuiNotification,String.valueOf(number==0?"":number));
}catch (Exception e){
e.printStackTrace();
// miui6之前
Intent localIntent = new Intent("android.intent.action.APPLICATION_MESSAGE_UPDATE");
localIntent.putExtra("android.intent.extra.update_application_component_name",context.getPackageName()+"/."+"MainActivity");
localIntent.putExtra("android.intent.extra.update_application_message_text",String.valueOf(number==0?"":number));
context.sendBroadcast(localIntent);
}
}
3、三星手機新增角標:(已通過)
String launcherClassName = "com.redfinger.huaweichangebadge.MainActivity";
Intent intent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");
intent.putExtra("badge_count",99);
intent.putExtra("badge_count_package_name",getPackageName());
intent.putExtra("badge_count_class_name",launcherClassName);
sendBroadcast(intent);
4、索尼手機新增角標,找不到相關機型:(未測試)
private final String lancherActivityClassName =MainActivity.class.getName();
private void sendToSony(Context context,String number) {
boolean isShow = true;
if ("0".equals(number)) {
isShow = false;
}
Intent localIntent = new Intent();
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.SHOW_MESSAGE", isShow);//是否顯示
localIntent.setAction("com.sonyericsson.home.action.UPDATE_BADGE");
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.ACTIVITY_NAME",lancherActivityClassName );//啟動頁
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.MESSAGE", number);//數字
localIntent.putExtra("com.sonyericsson.home.intent.extra.badge.PACKAGE_NAME", context.getPackageName());//包名
context.sendBroadcast(localIntent);
}
相關文章
- ubuntu 給app新增桌面圖示UbuntuAPP
- jsp 介面標籤頁 新增圖示JS
- Android探索之旅 | 為應用新增角標(Badge)Android
- 設定Android程式圖示和程式標題Android
- Android中顯示html標籤或者帶圖片AndroidHTML
- 如何在 Android App 上高效顯示點陣圖AndroidAPP
- 小程式view標籤新增背景圖真機不顯示問題View
- Activity背景顯示app圖示APP
- android 圓角圖片 處理Android
- win10如何新增桌面圖示_win10新增桌面圖示的方法Win10
- Panel 新增右側操作圖示
- 標籤元件與圖示元件
- qt 使用qmake pro檔案新增 ico圖示,程式執行時顯示圖示,exe也顯示圖示QT
- PCB匯入新增Logo圖示Go
- 滑鼠懸停新增遮罩及圖示。遮罩
- 為bootstrap新增更多自定義圖示boot
- android dialog圓角顯示及解決出現的黑色稜角Android
- Mac App icns 圖示生成MacAPP
- 給網頁新增標題圖片網頁
- 視訊: iphone式圓角圖示製作教程iPhone
- win10三角箭頭圖示隱藏怎麼恢復 win10三角箭頭圖示隱藏如何顯示Win10
- Android圖示適配Android
- Android建立快捷圖示Android
- Android系統耳機圖示顯示Android
- android隨筆:長按APP圖示彈出快捷方式(shortcuts)AndroidAPP
- 網站位址列圖示新增方法網站
- IOS APP安裝後不在桌面顯示圖示、改變圖示等iOSAPP
- 【iOS】動態修改APP圖示iOSAPP
- 論App圖示的顏色APP
- 電腦工作列怎麼新增藍芽圖示?電腦工作列新增藍芽圖示的方法教程藍芽
- Android7-1圖示快捷方式(AppShortcuts)實現DemoAndroidAPP
- 《劍指offer》之在完全二叉樹中新增子節點二叉樹
- 將應用圖示新增到ubuntu dash中Ubuntu
- 使用 Agora 為Android APP新增視訊直播GoAndroidAPP
- 安卓-自動切換APP圖示安卓APP
- Flutter之在Flutter佈局中嵌入原生元件Android篇Flutter元件Android
- Android 8.0 自適應圖示Android
- 百度地圖API : 自定義標註圖示地圖API