Android通过StickyBroadcast进行低电量检测提示
逻辑不难,主要代码如下
/** * 通过粘性广播检测电量 */ 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() { @Override public 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(); }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。