【发布时间】:2013-02-21 16:31:11
【问题描述】:
我面临着非常令人沮丧的问题。
我创建了 SMS 接收器,正如大多数在线和书籍教程所说的那样。
AndroidManifest.xml:
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<application android:name="roboguice.application.RoboApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:debuggable="true" >
<!-- ... other stuffs here ... -->
<receiver android:name=".receivers.SmsReceiver">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
</application>
SmsReceiver.java:
public class SmsReceiver extends BroadcastReceiver {
public static final String TAG = "SmsReceiver";
@Override
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "SMS received!");
Toast.makeText(context, "SMS received.", Toast.LENGTH_LONG).show();
}
}
虽然它在 Emulator (Android 2.2) 上正常工作,但在我的 HTC Wildfire 上却不能工作(Android 2.2.1,未植根)。
主要问题是我是 Android 开发新手,完全不知道如何调试它。
当我的 HTC 设备接收 SMS 消息时,我能否找到一些有用的 LogCat 日志?为什么我的设备不一样!?
【问题讨论】:
-
SMS 广播是有序的,所以第 1 步是把你的接收者的优先级拉高一些。您可以通过将意图过滤器上的 android:priority 属性设置为不计后果的高值并再次测试来做到这一点。试试 2147483647 之类的东西。
-
它不会改变任何东西 :(。没有登录 LogCat,没有显示 Toast,设备上什么也没有(在模拟器上它按预期工作)。我想知道为什么我在 LogCat 中得到这样的日志当手机收到短信时:“11-06 23:43:20.540: DEBUG/SMSDispatcher(171): dispatchWapPushToCIQ >>>”。这可能是原因还是任何痕迹?
-
嗯,尝试下载现有的 SMS 过滤器(从 Market)或类似于 Wildfire 的东西,然后先进行测试 - 这可能是 HTC 手机中的问题(以前发生过......)跨度>
-
谢谢 :),这是很好的跟踪。我发现“GO SMS Pro”应用程序阻止了我的应用程序的此 Intent(更多详细信息请参阅我的解决方案 - 对此主题的答案)。
标签: android