您的位置:首页 > 移动开发 > Android开发

Android广播监听手机电量

2017-06-21 10:23 441 查看
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"/>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: