android badge xml文件,Android 设置logo上的badgenumber

public class MainActivity extends Activity {

//必须使用 作为启动页的Activity

private final static String lancherActivityClassName = Welcome.class.getName();

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.common_listview_layout);

}

@Override

protected void onResume() {

super.onResume();

sendBadgeNumber();

}

//设置badgenumber的入口方法

private void sendBadgeNumber() {

String number = "35";

if (TextUtils.isEmpty(number)) {

number = "";

} else {

int numInt = Integer.valueOf(number);

number = String.valueOf(Math.max(0, Math.min(numInt, 99)));

}

if (Build.MANUFACTURER.equalsIgnoreCase("Xiaomi")) {

sendToXiaoMi(number);

} else if (Build.MANUFACTURER.equalsIgnoreCase("samsung")) {

sendToSony(number);

} else if (Build.MANUFACTURER.toLowerCase().contains("sony")) {

sendToSamsumg(number);

} else {

Toast.makeText(this, "Not Support", Toast.LENGTH_LONG).show();

}

}

//设置小米的badgenumber

private void sendToXiaoMi(String 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, number);// 设置信息数-->这种发送必须是miui 6才行

} catch (Exception e) {

e.printStackTrace();

//miui 6之前的版本

Intent localIntent = new Intent("android.intent.action.APPLICATION_MESSAGE_UPDATE");

localIntent.putExtra("android.intent.extra.update_application_component_name",getPackageName() + "/"+ lancherActivityClassName );

localIntent.putExtra("android.intent.extra.update_application_message_text",number);

sendBroadcast(localIntent);

}

}

//设置索尼的badgenumber

private void sendToSony(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",getPackageName());//包名

sendBroadcast(localIntent);

Toast.makeText(this, "Sony," + "isSendOk", Toast.LENGTH_LONG).show();

}

//设置三星的badgenumber

private void sendToSamsumg(String number)

{

Intent localIntent = new Intent("android.intent.action.BADGE_COUNT_UPDATE");

localIntent.putExtra("badge_count", number);//数字

localIntent.putExtra("badge_count_package_name", getPackageName());//包名

localIntent.putExtra("badge_count_class_name",lancherActivityClassName ); //启动页

sendBroadcast(localIntent);

Toast.makeText(this, "Samsumg," + "isSendOk", Toast.LENGTH_LONG).show();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值