我在清单中指定了一个接收者,如下所示..
<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设备(模拟器或real)上测试它,它会像我预期的那样工作。MySMSBroadcastReceiver.onReceive(...)在设备接收到SMS时被调用。
但是,如果我将其安装在4.0或4.1设备(模拟器或真实设备)上,则传入的消息不会发生任何反应。没有错误,什么都没有。我还更改了项目的属性,专门针对4.0或4.1设备,并重新安装了它,但这并没有什么不同。
发布于 2012-09-05 18:12:10
安装你的应用程序后,用户需要手动启动你的活动,然后你的任何BroadcastReceivers才会生效,从Android3.1开始。
发布于 2012-09-05 18:32:59
您可以在操作系统启动时启动接收器,并提供正确的权限。
https://stackoverflow.com/questions/12279021
复制相似问题