Android 安卓:接收特定号码的短信?

Android 安卓:接收特定号码的短信?,android,sms,Android,Sms,我是android新手,我正在开发一个应用程序,在这个应用程序中,我可以设置接收短信的电话号码,并且只有该短信才会被应用程序确认。有人能帮我吗 下面是一段代码片段- public class SMSApp extends IntentReceiver { static final String ACTION = "android.provider.Telephony.SMS_RECEIVED"; public void onReceiveIntent(Context cont

我是android新手,我正在开发一个应用程序,在这个应用程序中,我可以设置接收短信的电话号码,并且只有该短信才会被应用程序确认。有人能帮我吗

下面是一段代码片段-

public class SMSApp extends IntentReceiver {

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

public void onReceiveIntent(Context context, Intent intent) {
    if (intent.getAction().equals(ACTION)) {
        StringBuilder buf = new StringBuilder();
        Bundle bundle = intent.getExtras();
        if (bundle != null) {
            SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent);
            for (int i = 0; i < messages.length; i++) {
                SmsMessage message = messages[i];
                String phNum = message.getDisplayOriginatingAddress();
                if ("xxx-xxx-xxxx".equals(phNum))
                {// Do your thing }
            }
        }

    }
}
当然,您需要在清单中放置一个接收者和一个权限,类似于-

<uses-permission id="android.permission.RECEIVE_SMS" />
<application>
    <receiver class="SMSApp">
        <intent-filter>
            <action android:value="android.provider.Telephony.SMS_RECEIVED" />
        </intent-filter>
    </receiver>
</application>

以上代码是正确的。要添加到它,请记住添加此.abortBroadcast(),以便您的默认消息应用程序不会从该特定号码获取消息。例如:

    for (int i = 0; i &lt; messages.length; i++) {
            SmsMessage message = messages[i];
            String phNum = message.getOriginatingAddress();
            if (phNum.equals("000000")) {
               this.abortBroadcast();
               // do something
            } else {
               // do something else
            }

        }

在第二个if语句中,我在IntentReceiver和Telephony下得到了红线。它说它们都不能解析为一种类型,你能帮我吗?使用广播接收器,读这个。我的手机里有2个模拟人生!是否可以检查哪个sim卡正在接收消息?由于android 4.4,因此不可能。您无法停止使用默认消息应用程序。