我有一個應用程序試圖從特定的發件人處收到SMS消息,然後開始一個新的活動。當在Eclipse中使用Debug As和使用模擬器運行時,我的BroadcastReceiver工作得很好,它按預期擊中斷點。當我在Eclipse中使用運行方式在模擬器中啓動時,SMS消息不會被捕獲。看來BroadcastReceiver從來沒有根據缺少Log輸出而被調用。 SMSes在我的手機上運行時也不會被捕獲。任何想法爲什麼它以一種方式但不是另一種方式?短信廣播接收器僅在模擬器中調試
我手機上的應用程序非常少,我所知道的唯一一種捕獲短信的應用程序是內置的信使程序。
<receiver android:name=".sms.ConfirmationResponder">
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
...
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
接收器:
public class ConfirmationResponder extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Log.i("SMS", "############################ Confirmation being read");
// More stuff after this but I don't even get the log message
}
}
你如何釋放和調試模式構建? – Yury 2011-12-25 19:22:41
我只是在Eclipse中使用Run命令來模擬器和我的手機。 – Thien 2011-12-25 21:18:51
因此,您在真實手機中的模擬器和發佈模式中的調試模式是什麼?也許,在你訂購的真實手機上,意圖接收短信並且標準接收機具有更高的優先級。嘗試提高優先級(將其設置爲999)。也許這有幫助。 – Yury 2011-12-25 21:38:14