首页 > 解决方案 >

问题描述

标签: androidandroid-studiobroadcastreceiverandroid-broadcastreceiver

解决方案


当您将<data>元素添加到时,<intent-filter>您只会获得与该<data>元素匹配的广播事件。您列出的大多数广播Intent不包含任何数据。

您可以指定多个<intent-filter>,如下所示:

<receiver android:name=".activity.SettingsEventReceiver" >
    <intent-filter>
        <!--*************Bluetooth*********************-->
        <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />

        <!--*************Hotspot*********************-->
        <action android:name="android.net.wifi.WIFI_AP_STATE_CHANGED" />

        <!--*************AirplaneMode*********************-->
        <action android:name="android.intent.action.AIRPLANE_MODE"/>

        <!--*************VolumeChange*********************-->
        <action android:name="android.media.VOLUME_CHANGED_ACTION" />

        <!--*************ChargingSettings*********************-->
        <action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
        <action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" />

        <!--*************Sim status changed Event*********************-->
        <action android:name="android.intent.action.SIM_STATE_CHANGED" />

        <!--*************Reboot Event*********************-->
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <category android:name="android.intent.category.DEFAULT" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON"/>

    </intent-filter>

    <intent-filter>
        <!--*************Install/Uninstall Event*********************-->
        <action android:name="android.intent.action.PACKAGE_ADDED"/>
        <action android:name="android.intent.action.PACKAGE_REMOVED"/>
        <action android:name="android.intent.action.PACKAGE_FIRST_LAUNCH"/>
        <data android:scheme="package" />
    </intent-filter>
</receiver>

推荐阅读