Android 项目必备(十九)-->实时获取电池电量、蓝牙和 WiFi

在这里插入图片描述

需求:右上角动态实时监测电量、蓝牙是否开启,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 文件。

<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:drawable="@drawable/wifi4"
        android:maxLevel="50" />
    <item
        android:drawable="@drawable/wifi3"
        android:maxLevel="65" />
    <item
        android:drawable="@drawable/wifi2"
        android:maxLevel="75" />
    <item
        android:drawable="@drawable/wifi1"
        android:maxLevel="90" />
    <item
        android:drawable="@drawable/wifi0"
        android:maxLevel="100" />
    <item
        android:drawable="@drawable/wifi_disable"
        android:maxLevel="10000" />
</level-list>

日期时间实时显示

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);           //当前时间格式
    }
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kevin-Dev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值