需求:右上角动态实时监测电量、蓝牙是否开启,WiFi是否打开。
@Override
protected void onStart() {
super.onStart();
initData();
registReceiver(); //注册广播
}
@Override
protected void onResume() {
checkWiFi();
checkBlueTooth();
super.onResume();
}
/**
* 动态注册监听WiFi,蓝牙的广播。
*/
private void registReceiver() {
IntentFilter btfilter = new IntentFilter();
btfilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
IntentFilter netfilter = new IntentFilter();
netfilter.addAction("android.net.ethernet.ETHERNET_STATE_CHANGED");
netfilter.addAction("android.net.ethernet.STATE_CHANGE");
netfilter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
IntentFilter bafilter = new IntentFilter();
bafilter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(btReceiver, btfilter);
registerReceiver(netReceiver, netfilter);
registerReceiver(batteryReceiver,bafilter);
}
/**
* 动态检测蓝牙的状态
*/
private void checkBlueTooth() {
BluetoothAdapter btAdapter = BluetoothAdapter.getDefaultAdapter();
mBtIcon.setVisibility(View.GONE);
if (btAdapter == null)
return;
if (btAdapter.isEnabled()) {
mBtIcon.setImageResource(R.drawable.ic_bluetooth);
mBtIcon.setVisibility(View.VISIBLE);
}
}
/**
* 检测WiFi的连接状态
*/
private void checkWiFi() {
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int level = Math.abs(wifiInfo.getRssi());
mWifi.setImageResource(R.drawable.main_wifi_sel);
mWifi.setImageLevel(level);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(btReceiver); //注销广播
unregisterReceiver(netReceiver);
unregisterReceiver(batteryReceiver);
}
BroadcastReceiver btReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
checkBlueTooth();
}
};
BroadcastReceiver netReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
checkWiFi();
}
};
BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int level=intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
int scale=intent.getIntExtra(BatteryManager.EXTRA_SCALE,0);
int levelPercent = (int)(((float)level / scale) * 100);
switch (levelPercent) {
case 1:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_1);
break;
case 2:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_2);
break;
case 3:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_3);
break;
case 4:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_4);
break;
case 5:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_5);
break;
case 6:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_6);
break;
case 7:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_7);
break;
case 8:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_8);
break;
case 9:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_9);
break;
case 10:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_10);
break;
case 11:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_11);
break;
case 12:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_12);
break;
case 13:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_13);
break;
case 14:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_14);
break;
case 15:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_15);
break;
case 16:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_16);
break;
case 17:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_17);
break;
case 18:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_18);
break;
case 19:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_19);
break;
case 20:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_20);
break;
case 21:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_21);
break;
case 22:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_22);
break;
case 23:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_23);
break;
case 24:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_24);
break;
case 25:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_25);
break;
case 26:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_26);
break;
case 27:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_27);
break;
case 28:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_28);
break;
case 29:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_29);
break;
case 30:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_30);
break;
case 31:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_31);
break;
case 32:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_32);
break;
case 33:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_33);
break;
case 34:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_34);
break;
case 35:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_35);
break;
case 36:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_36);
break;
case 37:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_37);
break;
case 38:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_38);
break;
case 39:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_39);
break;
case 40:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_40);
break;
case 41:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_41);
break;
case 42:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_42);
break;
case 43:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_43);
break;
case 44:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_44);
break;
case 45:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_45);
break;
case 46:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_46);
break;
case 47:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_47);
break;
case 48:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_48);
break;
case 49:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_49);
break;
case 50:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_50);
break;
case 51:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_51);
break;
case 52:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_52);
break;
case 53:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_53);
break;
case 54:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_54);
break;
case 55:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_55);
break;
case 56:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_56);
break;
case 57:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_57);
break;
case 58:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_58);
break;
case 59:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_59);
break;
case 60:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_60);
break;
case 61:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_61);
break;
case 62:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_62);
break;
case 63:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_63);
break;
case 64:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_64);
break;
case 65:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_65);
break;
case 66:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_66);
break;
case 67:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_67);
break;
case 68:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_68);
break;
case 69:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_69);
break;
case 70:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_70);
break;
case 71:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_71);
break;
case 72:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_72);
break;
case 73:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_73);
break;
case 74:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_74);
break;
case 75:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_75);
break;
case 76:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_76);
break;
case 77:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_77);
break;
case 78:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_78);
break;
case 79:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_79);
break;
case 80:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_80);
break;
case 81:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_81);
break;
case 82:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_82);
break;
case 83:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_83);
break;
case 84:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_84);
break;
case 85:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_85);
break;
case 86:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_86);
break;
case 87:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_87);
break;
case 88:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_88);
break;
case 89:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_89);
break;
case 90:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_90);
break;
case 91:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_91);
break;
case 92:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_92);
break;
case 93:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_93);
break;
case 94:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_94);
break;
case 95:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_95);
break;
case 96:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_96);
break;
case 97:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_97);
break;
case 98:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_98);
break;
case 99:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_99);
break;
case 100:
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_100);
break;
}
mLevel.setText(levelPercent + "%");
int status = intent.getIntExtra(BatteryManager.EXTRA_STATUS, BatteryManager.BATTERY_STATUS_UNKNOWN);
if (status == BatteryManager.BATTERY_STATUS_CHARGING) {
mBatteryImg.setImageResource(R.drawable.stat_sys_battery_background); //充电状态,显示的图标
}
}
};
main_wifi_sel.xml 文件。
日期时间实时显示
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
refreshUI();
}
};
private void initData() {
SimpleDateFormat format = new SimpleDateFormat("E yyyy/MM/dd");
String str = format.format(new Date(System.currentTimeMillis()));
if (str.contains("周"))
str = "星期" + str.substring(1);
mDate.setText(str);
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
mHandler.sendMessage(mHandler.obtainMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
@Override
protected void onStart() {
super.onStart();
initData();
}
private void initData() {
SimpleDateFormat format = new SimpleDateFormat("E yyyy/MM/dd");
String str = format.format(new Date(System.currentTimeMillis()));
if (str.contains("周"))
str = "星期" + str.substring(1);
mDate.setText(str);
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
Thread.sleep(1000);
mHandler.sendMessage(mHandler.obtainMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}).start();
}
/**
* 通过handler及时更新时间显示效果
*/
public void refreshUI() {
SimpleDateFormat formatter = new SimpleDateFormat("HH:mm");
Date date = new Date(System.currentTimeMillis());
String curTime = formatter.format(date);
mTime.setText(curTime); //当前时间格式
}