首页 > 解决方案 > 如何使 SmsManager API 不同时显示发送的消息和接收的消息

问题描述

我正在编写一个应用程序,当用户对应用程序执行特定操作时,它会向应用程序用户发送一条短信。现在,我正在使用 SmsManager API 来实现这一点。唯一的问题是发送的消息和接收的消息在消息中同时显示。我该如何解决。另外,我想将消息发件人的名称更改为应用程序名称。

public void sendSMSEntering() {
    String phone = "08187016641";
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phone, null, "Welcome to the ICAN 2019 conference" , null, null);
    Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show();
}

public void sendSMSExiting() {
    String phone = "08187016641";
    SmsManager smsManager = SmsManager.getDefault();
    smsManager.sendTextMessage(phone, null, "Goodbye. We hope you enjoyed the conference" , null, null);
    Toast.makeText(getApplicationContext(), "SMS sent.", Toast.LENGTH_LONG).show();
}

我的来自 xml onClickListener 的按钮

sendMeAMessage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickcount++;
                if (clickcount % 2 == 0) {
                    sendSMSEntering();
                } else {
                    sendSMSExiting();
                }
            }
        });

截屏

图片

从上图中可以看出,应用程序发送的消息和我收到的消息都在那里。我只希望收到的消息显示在消息中。您还将观察到消息的发件人是我的电话号码(String phone = "08187016641")。“电话”既用作收件人电话号码,也用作消息的发件人。也许 smsManager.sendTextMessage(phone, null, "再见。希望您喜欢这次会议" , null, null); 不足以实现这一点,需要更改为其他内容。我需要建议

标签: android

解决方案


经过这么多研究,我发现 SMSManager API 很糟糕。有很多优秀的 SMS API 可供您与您的应用程序集成。然后,您可以根据需要使用 GET 或 POST 来请求 SMS 消息。这些 SMS API 为您提供了使用自定义发件人名称和其他强大选项来自定义传入文本消息的选项。其中一些 SMS API 包括 Nexmo SMS API、Ozeki SMS API 等等。好消息是,他们有一个全面的文档。事实上,将这些 SMS API 集成到您的应用程序中只需要几行代码。


推荐阅读