Android <receiver> - 未调用BroadcastReceiver

Lie*_*uwe 4 android broadcastreceiver

我在清单中指定了一个接收器,如此...

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.me.MyProject"
          android:versionCode="1"
          android:versionName="1.0">

<uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.RECEIVE_SMS"/>

<application android:label="@string/app_name"
             android:icon="@drawable/ic_launcher" android:enabled="true">

    <service android:name="MyService" 
             android:exported="true"
             android:process=":different" 
             android:enabled="true">
        <intent-filter>
            <action android:name="com.me.MyService">
            </action>
        </intent-filter>
    </service>

    <receiver android:exported="true" 
              android:name="MySMSBroadcastReceiver" 
              android:enabled="true">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
        </intent-filter>
    </receiver>
</application>
Run Code Online (Sandbox Code Playgroud)

如果我在Android Froyo设备(模拟器或真实设备)上进行测试,这可以正常工作.当设备收到SMS时,将调用MySMSBroadcastReceiver.onReceive(...).

但是,如果我在4.0或4.1设备(模拟器或真实设备)上安装它,则传入的消息不会发生任何变化.没有错误,没有任何错误.我还更改了项目的属性以专门定位4.0或4.1设备并重新安装它,但这没有任何区别.

pyu*_*s13 5

安装应用程序后,用户需要在任何BroadcastReceiver生效之前手动启动您的活动,从Android 3.1开始.