2012-08-06 132 views
0

我目前正在一個項目中分析SMS_RECEIVED-Flow。自己的廣播接收器沒有收到模擬的SMS_RECEIVED

根據文章[1]我模擬SMS_RECEIVED,廣播與顯式調用該服務:com.android.mms.transaction.SmsReceiverService

問題是,Android模擬器和我的Nexus確實將生成的BroadcastReceiver轉發給默認的SMS-App,我不知道爲什麼。

我試圖抓住廣播與另一個應用程序,並與動態註冊的接收器(所有接收器具有最高優先級和正確的意圖過濾器註冊)的靜態註冊接收器。這兩種方法都可以正常使用SMS,但不能用於我的模擬。

所以問題是,有人知道短信接收機制如何工作,爲什麼我的程序不會收到任何廣播。

[1] http://blog.dev001.net/post/14085892020/android-generate-incoming-sms-from-within-your-app

回答

0

SmsRecieverService是默認短信應用的一部分,所以如果你調用這個服務,廣播將達只有應用程序。由於SMS_RECIEVED廣播是受保護的廣播,因此您的應用無法播放它。

一種方法是在模擬器和您的應用程序中更改廣播的名稱。

+0

THX, 我知道,SMS_RECEIVED廣播是受保護的,但我希望有模擬接收行爲的解決方法,因爲那一段時間後Handcent接收模擬短信太多的事實(這似乎Handcent崩潰和重新開放後它將收到短信)。 ......我認爲Handcent從內容提供商那裏收到Sms。 – Chris 2012-08-06 12:06:51

+0

如果你有一個自定義的ROM,你可以用平臺簽名簽署你的應用程序,那麼你將無法播放。 – nandeesh 2012-08-06 12:45:02