Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态

Android 获取 Wifi 信号强度,检测是 Wifi 或者流量,获取手机电池电量及充电状态

初始化:

    private static BroadcastReceiver batteryLevelRcvr;
    private static IntentFilter batteryLevelFilter;
    public static int batteryLevel = 0;
    public static int isChargingNum = 0;
    public static int WifiStrength = 0;
    public static int isWifiTraffic = 0;

在 onCreater 中使用:

monitorBatteryState();

编写代码:

    /**
     * 检查用户是用的 Wifi 还是 流量
     * */
    public static void isWifiOrTraffic() {
        ConnectivityManager cm;
        cm = (ConnectivityManager) instance
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        boolean isWifitrue = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
                .getState() == NetworkInfo.State.CONNECTED ? true : false;
        boolean isGprstrue = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
                .getState() == NetworkInfo.State.CONNECTED ? true : false;
        if (isWifitrue == true) {
            setWifiOrTraffic(4);
        }
        if (isGprstrue == true) {
            setWifiOrTraffic(5);
        }
    }

    public static void setWifiOrTraffic(int wifi) {
        isWifiTraffic = wifi;
    }

    public static int getWifiOrTraffic() {
        System.out
                .println("=====4-wifi 5-traffic =====JAVA getWifiOrTraffic() : "
                        + isWifiTraffic);
        return isWifiTraffic;
    }

    /**
     * Wifi的连接速度及信号强度
     * */
    public int obtainWifiInfo() {
        int strength = 0;
        WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); // 取得WifiManager对象
        WifiInfo info = wifiManager.getConnectionInfo(); // 取得WifiInfo对象
        if (info.getBSSID() != null) {
            strength = WifiManager.calculateSignalLevel(info.getRssi(), 5); // 链接信号强度,5为获取的信号强度值在5以内
            // int speed = info.getLinkSpeed(); // 链接速度
            // String units = WifiInfo.LINK_SPEED_UNITS; // 链接速度单位
            // String ssid = info.getSSID(); // Wifi源名称
        }
        return strength; // return info.toString();
    }

    public BroadcastReceiver rssiReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Log.d("Rssi", "=====RSSI changed");
            setWifiStrength(obtainWifiInfo());
        }
    };

    public void setWifiStrength(int strength) {
        WifiStrength = strength;
    }

    public static int getWifiStrength() {
        System.out.println("=====JAVA getWifiStrength() : " + WifiStrength);
        return WifiStrength;
    }

    @Override
    public void onPause() {
        super.onPause();
        unregisterReceiver(rssiReceiver);
        Log.d("Rssi", "=====Unregistered");
    }

    /**
     * 1.获取手机电池电量 2.检查手机是否充电
     * */
    public static void monitorBatteryState() {
        isWifiOrTraffic();
        batteryLevelRcvr = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int status = intent.getIntExtra("status", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                setBatteryLevel(level);
                switch (status) {
                case BatteryManager.BATTERY_STATUS_CHARGING:
                    setIsCharging(1);
                    break;
                case BatteryManager.BATTERY_STATUS_FULL:
                    setIsCharging(2);
                    break;
                case BatteryManager.BATTERY_STATUS_NOT_CHARGING:
                    setIsCharging(3);
                    break;
                default:
                    break;
                }
            }
        };
        batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        instance.registerReceiver(batteryLevelRcvr, batteryLevelFilter);
    }

    public static void setBatteryLevel(int level) {
        batteryLevel = level;
    }

    public static int getBatteryLever() {
        System.out.println("=====getBatteryLever() : " + batteryLevel);
        return batteryLevel;
    }

    public static void setIsCharging(int num) {
        isChargingNum = num;
    }

    public static int getIsCharging() {
        System.out
                .println("=====1-ing 2-full 3-no =====JAVA getIsCharging() : "
                        + isChargingNum);
        return isChargingNum;
    }

    protected void onResume() {
        super.onResume();
        if (isWxLogin) {
            Log.d(TAG, "====Login Success");
            loadWXUserInfo();
        }
        registerReceiver(rssiReceiver, new IntentFilter(
                WifiManager.RSSI_CHANGED_ACTION));
        Log.d("Rssi", "=====Registered");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(batteryLevelRcvr);
    }
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值