標籤:
邏輯不難,主要代碼如下
/** * 通過粘性廣播檢測電量 */private void checkBattery(){//通過粘性廣播讀取電量IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);Intent intentBattery = registerReceiver(null, intentFilter);//注意,粘性廣播不需要廣播接收器if(intentBattery!=null){//擷取當前電量 int batteryLevel = intentBattery.getIntExtra("level", 0); //電量的總刻度 int batterySum = intentBattery.getIntExtra("scale", 100); float rotatio = 100*(float)batteryLevel/(float)batterySum;LogUtils.d("currentBattery="+rotatio+"%");if(rotatio<15){getWindow().getDecorView().postDelayed(new Runnable() {@Overridepublic void run() {showAlertToastTip(getString(R.string.common_low_batter));}}, 100);}}}/** * 顯示警告提示 * @param msg */private void showAlertToastTip(String msg){TextView msgTv = null;Toast toast = null;toast = new Toast(this);toast.setDuration(Toast.LENGTH_SHORT);toast.setGravity(Gravity.TOP | Gravity.FILL_HORIZONTAL, 0, 0);View toastView = LayoutInflater.from(this).inflate(R.layout.common_simple_toast_layout, null);msgTv = (TextView) toastView.findViewById(R.id.common_toast_text_tv);toastView.setTag(msgTv);toast.setView(toastView);msgTv.setText(msg);toast.show();}
Android通過StickyBroadcast進行低電量檢測提示