安卓短信接收与发送功能实现

幻想的画家 2023-08-26 ⋅ 20 阅读

在安卓应用开发中,短信功能是一个非常常见且重要的功能。本文将介绍如何使用安卓开发工具实现短信的接收与发送功能。

短信接收功能

要实现短信接收功能,我们首先需要在AndroidManifest.xml文件中添加短信接收的权限:

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

然后在项目的代码中创建一个短信接收广播接收器,继承自BroadcastReceiver,并重写onReceive方法来处理接收到的短信。示例代码如下所示:

public class SmsReceiver extends BroadcastReceiver {

    private static final String TAG = "SmsReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {
            Bundle bundle = intent.getExtras();
            if (bundle != null) {
                // 获取短信内容
                Object[] pdusObj = (Object[]) bundle.get("pdus");
                if (pdusObj != null) {
                    for (Object pduObj : pdusObj) {
                        SmsMessage smsMessage = SmsMessage.createFromPdu((byte[]) pduObj);
                        String sender = smsMessage.getDisplayOriginatingAddress();
                        String messageBody = smsMessage.getDisplayMessageBody();

                        Log.d(TAG, "Sender: " + sender + ", Message: " + messageBody);

                        // 在这里处理接收到的短信
                    }
                }
            }
        }
    }
}

接下来,我们需要在应用的启动活动中注册这个短信接收广播接收器:

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";
    private SmsReceiver smsReceiver;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 注册短信接收广播接收器
        smsReceiver = new SmsReceiver();
        IntentFilter filter = new IntentFilter();
        filter.addAction("android.provider.Telephony.SMS_RECEIVED");
        registerReceiver(smsReceiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        // 在活动销毁时注销短信接收广播接收器
        unregisterReceiver(smsReceiver);
    }
}

现在,我们已经成功实现了短信接收功能。当有新的短信到达时,SmsReceiveronReceive方法将被触发,并且我们可以获取到发送者和短信内容。

短信发送功能

要实现短信发送功能,我们需要在AndroidManifest.xml文件中添加短信发送的权限:

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

然后在项目的代码中创建一个短信发送的方法,示例代码如下所示:

private void sendSms(String phoneNumber, String message) {
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phoneNumber, null, message, null, null);
}

在需要发送短信的地方,调用sendSms方法并传入目标手机号码和短信内容即可发送短信。

需要注意的是,发送短信需要获取短信发送的权限,如果应用没有获取到这个权限,发送短信将会失败。在实际应用中,我们可以在运行时申请获取短信发送的权限。

结语

本文介绍了如何在安卓应用中实现短信的接收与发送功能。通过使用短信接收广播接收器和短信管理器,我们可以轻松实现这些功能。短信功能在很多场景都得到了广泛的应用,开发者们可以根据具体需求将其用于各种功能的实现。


全部评论: 0

    我有话说: