簡體   English   中英

閱讀Android 4.4中的傳入短信

[英]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中引入的,不能中止。

官方頁面在這里...

設法找到它。 您可以參考本教程:

http://code.tutsplus.com/tutorials/use-text-to-speech-on-android-to-read-out-incoming-messages--cms-22524

說明如何閱讀傳入的SMS。 請注意,除非用戶選擇您的應用程序作為默認消息傳遞應用程序,否則某些功能(如中止廣播,刪除短信)將無法從Android 4.4開始使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM