我正在寫一個需要接收短信的應用程序,每個人都在其代碼中使用「android.provider.Telephony.SMS_RECEIVED_ACTION」意圖操作,但它看起來像API級別17不再支持它! 現在在哪裏?我也沒有在「android.telephony」類中找到SMS_RECEIVED_ACTION! 請別人告訴我,我完全困惑。我應該使用舊的API嗎?android:其中是android.provider.Telephony.SMS_RECEIVED?
回答
在API 19(4.4 - KitKat)之前,Telephony類沒有記錄的API。班級的缺席並不意味着你想做的事情不起作用。您需要申請此權限:
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
如果你在你的清單註冊您的接收器將是這個樣子:
<receiver android:name=".SmsIntentReceiver">
<intent-filter android:priority="1">
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
從android.provider.Telephony AOSP:
public static final String SMS_RECEIVED_ACTION = "android.provider.Telephony.SMS_RECEIVED";
這裏是一個grepcode.com參考來源:
注意類聲明之前的「@hide」 - 它在那裏,但沒有暴露給開發者。這就是爲什麼它不被ADT認可。
以上answe對我有用 - 謝謝! – user1501382
android.telephony
類提供其在API級1引入詳情請閱讀本android.telephony
android.telephony.SmsManager
是用於從收件箱中設備獲取消息的信息有關電話狀態的信息。你可以看一下這裏telephony.SmsManager
沒有任何跡象表明他們在API級別17
感謝您的信息。我說android.provider.telephony被取代,而telephony.SMS_RECEIVED_ACTION消失了!我想知道我在哪裏可以找到它 –
我們需要讀取這個文件過時。
Android Developers Blog - Getting Your SMS Apps Ready for KitKat
與Android 4.4開始,你應該停止監聽SMS_RECEIVED_ACTION通過檢查平臺版本,然後用PackageManager.setComponentEnabledSetting禁用您的廣播接收機SMS_RECEIVED_ACTION(廣播,您可以在運行時做)。但是,如果您的應用程序只需要讀取特殊的SMS消息(如執行電話號碼驗證),則可以繼續收聽廣播。請注意,從Android 4.4開始 - 您的應用程序嘗試中止SMS_RECEIVED_ACTION廣播將被忽略,所有感興趣的應用程序都有機會接收它。
我認爲我們必須爲KitKat做好準備。這是一件令人煩惱的事情。 :)
您可以在代碼中使用Telephony.Sms.Intents.SMS_RECEIVED_ACTION
。
下面是我的工作代碼:
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Telephony.Sms.Intents.SMS_RECEIVED_ACTION)) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
}
}
}
你必須導入import android.provider.Telephony;
- 1. android.provider.Telephony.SMS_RECEIVED不可用
- 2. Go SMS Pro重寫android.provider.Telephony.SMS_RECEIVED
- 3. GO短信和android.provider.Telephony.SMS_RECEIVED接收
- 4. 如何檢查誰在監聽android.provider.Telephony.SMS_RECEIVED?
- 5. 權限拒絕:廣播意圖android.provider.Telephony.SMS_RECEIVED
- 6. 無法捕獲通過android.provider.Telephony.SMS_RECEIVED收到的短信
- 7. 權限拒絕:廣播意圖的行爲= android.provider.Telephony.SMS_RECEIVED
- 8. Android,Handler是在主線程還是其他線程中運行?
- 9. 其中是libMobileGestalt.dylib
- 10. 其中是socket.io.js?
- 11. 其中是org.apache.derby.jdbc.ClientDriver?
- 12. 其中是RelatedToAttribute?
- 13. 其中是user.config?
- 14. 其中是sscanf_s?
- 15. MonoDroid中的Android Contextual ActionBar和ListView multiselect支持:其中是ChoiceMode.MultipleModal?
- 16. 什麼是出售其於Android的
- 17. Android傳遞對象不是其值
- 18. 其中notification.number在Android ICS
- 19. 其中庫是com.atlassian.jira.user.util?
- 20. OfxEtherDream:其中是getNumEtherdream()?
- 21. Zend_Session其中是cookie?
- 22. 其中是Android的對話框的佈局xml和png的?
- 23. Android Loader是否在單獨的線程中執行其工作?
- 24. Android ListView與2組其中每一行是不同的對象
- 25. 如何處理圖像,尤其是android中的背景圖像
- 26. 是否可以在Android設備中加載其他數據庫?
- 27. 是否可以從其他活動中刪除MODE_PRIVATE Android SharedPreferences?
- 28. 其中文件是爲android定義的目標?
- 29. android sqlite其中值可以是任何值
- 30. 什麼是libcore及其在android中的作用?
什麼讓你覺得它過時? – tyczj
寫入「import android.provider.Telephony;」在你的IDE中,你會看到錯誤。這個類沒有解決。至少在API級別17 –