[英]Read Incoming SMS in Android 4.4
正如我從多個來源中了解到的那樣,Android 4.4及更高版本中的API有所更改,等等。的確,我的代碼現在無法正常工作:(
基本上,我想讀取傳入的SMS並通過刪除垃圾短信來過濾可能的垃圾郵件。 由於現在無法刪除,因此我僅提示您新接收的SMS可能是垃圾郵件。
以下是我的非Android 4.4版本的源代碼片段:
public class Sms extends BroadcastReceiver{
private static final String ACTION = "android.provider.Telephony.SMS_DELIVER";
public void onReceive(Context context, Intent intent) {
Bundle pudsBundle = intent.getExtras();
Object[] pdus = (Object[]) pudsBundle.get("pdus");
SmsMessage messages =SmsMessage.createFromPdu((byte[]) pdus[0]);
// Log.i(TAG, messages.getMessageBody());
if(messages.getMessageBody().contains("Adv")) {
abortBroadcast();
}
}
}
我的清單文件:
<receiver android:name=".Sms" android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
為了使其適用於Android 4.4,我必須更改什么? 我只想閱讀傳入的SMS,而無需執行abortBroadcast。
從4.4開始,僅默認的SMS應用程序將接收SMS_DELIVER_ACTION廣播。 現在其他應用程序必須使用SMS_RECEIVED_ACTION廣播,這是API級別19中引入的,不能中止。
設法找到它。 您可以參考本教程:
說明如何閱讀傳入的SMS。 請注意,除非用戶選擇您的應用程序作為默認消息傳遞應用程序,否則某些功能(如中止廣播,刪除短信)將無法從Android 4.4開始使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.