Android广播监听手机电量

来源:互联网 发布:网络营销策划师刘欣雨 编辑:程序博客网 时间:2024/04/28 08:51

Android获取手机电量信息,使用广播可以更好的监听手机电量的变化,直接上代码。

package com.yang.user.mybatterystats;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    TextView tv ;    BatteryBroadcastReciver batteryBroadcastReciver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);    }    @Override    protected void onResume() {        super.onResume();        batteryBroadcastReciver = new BatteryBroadcastReciver();        //传建一个过滤器        IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);        registerReceiver(batteryBroadcastReciver,intentFilter);    }    @Override    protected void onPause() {        super.onPause();        unregisterReceiver(batteryBroadcastReciver);    }    public class BatteryBroadcastReciver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            if(intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){                //get 系统电量                int level = intent.getIntExtra("level",0);                int total =intent.getIntExtra("scale",100);                tv.setText("当前电量: "+ (level*100)/total + "%");                //当电量小于15%时触发                if (level<15){                    Toast.makeText(MainActivity.this,"当前电量小于15%",Toast.LENGTH_SHORT).show();                }            }        }    }}

Manifest配置权限:

<uses-permission android:name="android.permission.BATTERY_STATS"/>


原创粉丝点击