應用內顯示時間,wifi強度,電量

1.獲取時間

 mTvShowTime = findViewById(R.id.tv_show_time);
        //獲取系統顯示時間格式,根據不同的格式顯示
        ContentResolver cv = this.getContentResolver();
        String strTimeFormat = android.provider.Settings.System.getString(cv,
                                                                          android.provider.Settings.System.TIME_12_24);

        if ("24".equals(strTimeFormat)) {
            CharSequence s = "HH:mm";
            mTvShowTime.setFormat24Hour(s);
        } else {
            CharSequence s = "HH:mm";
            mTvShowTime.setFormat12Hour(s);
        }

2.獲取WIFI強度

//廣播
public class NetworkStateBroadcastReceiver extends BroadcastReceiver {
	@Override
	public void onReceive(Context context, Intent intent) {
		if(intent.getAction().equalsIgnoreCase(WifiManager.WIFI_STATE_CHANGED_ACTION)){
			wifiStateChange(context, intent);
		}else{
			networkChange(context,intent);
		}
	}
	
	public void wifiStateChange(Context context, Intent intent){
		int wifi_state = intent.getIntExtra("wifi_state", 0);   
        int level = Math.abs(((WifiManager)context.getSystemService(Context.WIFI_SERVICE)).getConnectionInfo().getRssi()); 
        Log.e("network", "wifi狀態:" + wifi_state + "; wifi強度:" + level);
        mWifiChange.level(level);
	}
	
	public void networkChange(Context context,Intent intent){
		ConnectivityManager manager     = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        assert manager != null;
        NetworkInfo networkInfo = manager.getActiveNetworkInfo();
		if(networkInfo != null){
			int type = networkInfo.getType();
			switch (type) {
				case ConnectivityManager.TYPE_MOBILE:
					Log.e("network", "手機網絡");
				break; 
				case ConnectivityManager.TYPE_WIFI:
					Log.e("network", "wifi網絡");
                    wifiStateChange(context, intent);
				break;
			}
		}else{
			Log.e("network", "沒有網絡");
		}
	}

    public interface  WifiChange{
	    void level(int level);
    }
    private WifiChange mWifiChange;
	public void setWifiChange(WifiChange wifiChange){
	    mWifiChange = wifiChange;
    }
}
















//獲取的使用方法,在Acitivity中調用示例
//註冊wifi廣播 
        NetworkStateBroadcastReceiver broadcastReceiver = new NetworkStateBroadcastReceiver();
        IntentFilter                  filter            = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
        filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
        registerReceiver(broadcastReceiver, filter);
        broadcastReceiver.setWifiChange(new NetworkStateBroadcastReceiver.WifiChange() {
            @Override
            public void level(int level) {
                // 是一個int型數據,其中0到-50表示信號最好,-50到-70表示信號偏差,小於-70表示最差,有可能連接不上或者掉線,
                // 一般Wifi已斷則值爲-127。

                if (level < 52) {
                    mIvWifi.setImageResource(R.mipmap.icon_wifi_four);
                } else if (level < 60) {
                    mIvWifi.setImageResource(R.mipmap.icon_wifi_three);
                } else if (level < 70) {
                    mIvWifi.setImageResource(R.mipmap.icon_wifi_two);
                } else if (level < 120) {
                    mIvWifi.setImageResource(R.mipmap.icon_wifi_one);
                } else if (level <= 200) {
                    mIvWifi.setImageResource(R.mipmap.icon_wifi_none);
                }

            }
        });

3.獲取電量

 //獲取系統電量
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    private void getElectricity() {
        BatteryManager batterymanager = (BatteryManager) getSystemService(BATTERY_SERVICE);
        //batterymanager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);
        assert batterymanager != null;
        int intProperty = batterymanager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY);

        mTvBattery.setText(intProperty + "%");
        if (intProperty <= 20) {
            mIvBattery.setImageResource(R.mipmap.icon_power_none);
        } else if (intProperty <= 40) {
            mIvBattery.setImageResource(R.mipmap.icon_power_one);
        } else if (intProperty <= 60) {
            mIvBattery.setImageResource(R.mipmap.icon_power_two);
        } else if (intProperty <= 80) {
            mIvBattery.setImageResource(R.mipmap.icon_power_three);
        } else {
            mIvBattery.setImageResource(R.mipmap.icon_power);
        }

    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章