接收系統廣播
Android 內置了大量系統廣播,在相應事件發生時都會發出廣播,開發者可以直接接收這些廣播信息,并以此來實現豐富的軟件功能,如網絡斷開時提醒、電量提醒、鎖屏桌面、開機啟動、短信攔截等。常見的系統廣播及標識 Action 常量如下表:
系統廣播常量列表:
效果圖:
在這里插入圖片描述
MainActivity.java
public class MainActivity extends AppCompatActivity {BatteryBroadcastReciver batteryBroadcastReciver;private TextView textView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView = findViewById(R.id.tv_show);}@Overrideprotected void onResume() {super.onResume();batteryBroadcastReciver = new BatteryBroadcastReciver(); // 注冊廣播IntentFilter intentFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);registerReceiver(batteryBroadcastReciver,intentFilter);}@Overrideprotected void onPause() {super.onPause();unregisterReceiver(batteryBroadcastReciver); // 關閉廣播消息}public class BatteryBroadcastReciver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)){ // 如果系統發出的消息是關于電量的int level = intent.getIntExtra("level",0); // 當前電量int total = intent.getIntExtra("scale",100); // 總電量textView.setText("當前變量: " + (level*100) / total + "%"); // (當前電量*100)/ 總電量if (level < 85){ // 當電量小于%85時Toast.makeText(MainActivity.this,"當前電量已小于 85%",Toast.LENGTH_LONG).show();}}}}}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><TextViewandroid:id="@+id/tv_show"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="顯示"android:layout_centerInParent="true"/></RelativeLayout>
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态