私はそのようにマニフェストでレシーバーを指定しました..
<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>
これを Android Froyo デバイス (エミュレーターまたは本物) でテストすると、期待どおりに動作します。デバイスが SMS を受信すると、MySMSBroadcastReceiver.onReceive(...) が呼び出されます。
ただし、これを 4.0 または 4.1 デバイス (エミュレーターまたは実際のデバイス) にインストールすると、着信メッセージで何も起こりません。エラーも何もありません。また、プロジェクトのプロパティを変更して 4.0 または 4.1 デバイスを具体的にターゲットにして再インストールしましたが、違いはありません。