系统广播--以显示手机电量为例:
java文件:
当手机电量发生改变时,系统会对外发送Intent的Action,将action设为Intent.ACTION_BATTERY_CHANGED即可。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//系统广播
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_BATTERY_CHANGED);
BatteryReceiver batteryReceiver = new BatteryReceiver();
registerReceiver(batteryReceiver,intentFilter);
}
}
BatteryReceiver里的内容:
public class BatteryReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
int current = bundle.getInt("level");
int total = bundle.getInt("scale");
if(current * 1.0 / total ==1){
Toast.makeText(context, "当前手机电量为"+(current / total)*100+"%", Toast.LENGTH_SHORT).show();
}
}
}
AndroidManifest需要申请权限:
<uses-permission android:name="android.permission.BATTERY_STATS"
tools:ignore="ProtectedPermissions" />
运行结果如下: