【发布时间】:2012-01-09 08:05:42
【问题描述】:
我正在尝试使用 android.provider.Telephony.SMS_RECEIVED 来捕获传入的短信。
我构建了一个简单的应用程序,可以在 2.x 上运行,但是当我在 4.0 模拟器或设备上尝试它时,它不起作用。
有什么想法吗?
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.giggsey.MyFirstApp" android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
<receiver android:name=".MyFirstApp">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED"></action>
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="9" />
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>
</manifest>
MyFirstApp.java
public class MyFirstApp extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String TAG = "MyFirstApp";
@Override
public void onReceive(Context context, Intent intent) {
Log.i(TAG, "Intent recieved: " + intent.getAction());
}
}
【问题讨论】:
-
你用的是真机还是模拟器?
-
@rekire 都在 4.0 上。还尝试了 2.3 中的模拟器,并且有效。
-
我已将接收器名称更改为一个不存在的类,但它仍然什么也不做(logcat 中没有错误)。所以我认为它甚至没有走那么远。所以要么它没有触发那个意图(不太可能),要么它没有使用我的应用程序(可能)
-
没关系,我没看到马特说的和我说的基本一样...stackoverflow.com/a/8421369/520186
-
看看这个答案。应该能解决你的问题。 stackoverflow.com/questions/7349173/…
标签: android sms android-intent android-4.0-ice-cream-sandwich