代码之家  ›  专栏  ›  技术社区  ›  Amin Pinjari

添加package\u并删除package\u后,单个接收器中的多个广播操作不起作用

  •  1
  • Amin Pinjari  · 技术社区  · 7 年前

    我正在创建一个应用程序,它将向我发送各种操作的事件, 我在单个类中添加了bellow事件,效果非常好。

    <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>
    </receiver>
    

    但每当我添加以下操作时,我不会收到任何事件

    <!--*************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" />
    

    我如何克服这个问题? 请帮忙

    1 回复  |  直到 7 年前
        1
  •  1
  •   Amin Pinjari    7 年前

    当您添加 <data> 元素到 <intent-filter> 您将只能获得与此匹配的广播事件 <数据(>); 要素大部分广播 Intent 您列出的不包含任何数据。

    可以指定多个 <意向过滤器(>); ,如下所示:

    <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>