2013-03-02 19 views

回答

2

您可以進入短信註冊一個BroadcastReceiver,並使用this.abortBroadcast();放棄其進一步處理:

裏面你表現:

<receiver android:name=".SMSBroadcastReceiver"> 
    <intent-filter> 
    <action android:name="android.provider.telephony.SMS_RECEIVED"></action> 
    </intent-filter> 
</receiver> 

接收機的執行情況:

public class SMSBroadcastReceiver extends BroadcastReceiver { 

    private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED"; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getAction() == SMS_RECEIVED) { 
     Bundle bundle = intent.getExtras(); 
     ... 
     this.abortBroadcast(); 
     } 
    } 
} 

但是,這種方式不可能放棄發送的SMS。請注意,如果註冊了多個BroadcastReceivers,則將優先處理具有最高優先級(android:priority)的那個。

+0

您是否知道如何在郵件收件箱中輸入密碼?像去Sms專業..我們可以在我們的android代碼中做到這一點嗎? – 2013-03-02 11:38:04

+0

這個問題的答案並不簡單,並且需要代碼/解釋頁面。總之,你可以 - 但你必須將消息從短消息存儲轉移到自己的ContentProvider中。在這裏你有「完全控制」 – Trinimon 2013-03-02 11:58:47

+0

好吧thnx你有什麼代碼? – 2013-03-02 12:29:20

2

Imho你不能禁用短信接收/發送,但你可以捕獲收到的短信廣播意圖。

SMS收到的廣播意圖是一個有序的廣播,它將按照接收器中定義的優先級的順序傳送到所有廣播接收器。

如果您註冊一個優先級爲0的廣播接收器,您可以捕獲短信廣播並取消它。

請記住,其他SMS應用程序也可以使用優先級0註冊,對於相同的優先級值,行爲未定義。無論如何也收到短信,您只隱藏最終通知/鈴聲。


另一種方法是設置短信中心號碼一些無效的值,需要植根手機雖然

+0

thnx爲您提供幫助...另一個想法是把密碼放在消息收件箱中,如android市場中的goSms pro ....你有任何想法如何做到這一點? – 2013-03-02 11:36:45

相關問題