android - 如何让我的应用程序响应来自特定号码的短信

标签 android sms

我正在尝试构建一个响应特定号码的短信的应用程序,为了进行更多演示,我想要这样的代码:

 if(number == +232344322)
 {
  do something
  } else 
 {
  do nothing
   }

那么在 android 中最简单的方法是什么???

最佳答案

您需要创建一个 BroadcastReceiver当收到 SMS 时将调用它。在 OnReceiveBroadCastReceiver的编写代码检索短信发送者的号码并比较该号码并根据该号码执行任务。

public class ReceiveSMS extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    final Bundle bundle = intent.getExtras();
        if (bundle != null) {

            final Object[] pdusObj = (Object[]) bundle.get("pdus");

            for (int i = 0; i < pdusObj.length; i++) {

                SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
                String phoneNumber = currentMessage.getDisplayOriginatingAddress();
                String message = currentMessage.getDisplayMessageBody();
                Log.v("ranjapp", phoneNumber + " " + message);
                if (phoneNumber.equals("+91xxxxxx"))) {
                    //do something
                }else{
                    //do nothing
                }
            }
        }
    }
}

在 AndroidManifest.xml 中您需要添加:

  1. **带有 Intent 过滤器的接收器 <application>标签

     <receiver
        android:name=".ReceiveSMS"
        android:exported="true"
        android:permission="android.permission.BROADCAST_SMS">
        <intent-filter>
            <action android:name="android.provider.Telephony.SMS_RECEIVED" />
            <action android:name="android.provider.Telephony.SMS_DELIVER" />
        </intent-filter>
    </receiver>
    
  2. 权限:

    <uses-permission android:name="android.permission.RECEIVE_SMS"/>

    <uses-permission android:name="android.permission.READ_SMS"/>

关于android - 如何让我的应用程序响应来自特定号码的短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31230766/

相关文章:

android - 迁移到Gradle后,ActionBar为null

android - 请解释一些 Android 服务概念

iOS 6 - ChatKit 私有(private) API - 发送短信

java - 如何使用 java 代码和 AT 命令从 sim dongle 读取短信?

android - 在 Canvas 上动画绘制圆/弧

javascript - 如何在操作栏中显示应用程序图标?

android - 如何在 Android 中捕获超过 80 字节的短信?

paypal - 用户使用短信支付付费内容

networking - 传输或模拟 SMS-CB(短消息服务-小区广播)

安卓 NDK : ndk-build building error