【问题标题】:Android - delete phone verification SMS sent to selfAndroid - 删除发送给自己的手机验证短信
【发布时间】:2015-03-08 19:49:52
【问题描述】:

我在我的应用程序的注册过程中添加了电话验证短信功能,但短信在短信收件箱中写为已发送和已接收。目前我只发送一个简单的文本来验证号码,所以这里没有什么秘密,但它不是那么用户友好,所以我想知道我是否可以以某种方式阻止这条短信被写入。

我添加了 abortBroadcast();如果代码正确但没有效果。我正在使用 Android 4.4.2,出于安全原因,我已经阅读过,没有办法做到这一点,所以有没有办法以不同的方式实现我想要的?我知道其他应用确实可以做到这一点...

发送短信代码:

SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(Utils.phone, null, "text", null, null);

短信消费代码:

public class SMSReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle bundle = intent.getExtras();
        Object[] pdus = (Object[]) bundle.get("pdus");
        SmsMessage messages = SmsMessage.createFromPdu((byte[]) pdus[0]);
        if (messages.getMessageBody().contains("text")) {
            Toast.makeText(Utils.context,"ok",Toast.LENGTH_LONG).show();
            abortBroadcast();
        }
    }
}

这是清单:

<receiver android:name="com.tomerapp.tomerapp.utils.SMSReceiver" android:exported="false">
    <intent-filter android:priority="999">
        <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
    </intent-filter>
</receiver>

android:exported="false" 是否意味着接收方/我的应用程序只会捕获从应用程序本身发送的短信?除了应用程序发送的内容外,我不想为 SMS 浪费电池电量。

【问题讨论】:

  • 从 Android 4.4 开始,只有默认 SMS 应用程序对 Provider 具有标准写入权限,非默认应用程序通常对写入或删除消息没有任何控制权。如果您的应用程序只是发送一条验证消息,我不会担心尝试删除它。这可能比它的价值更麻烦。
  • whatsapp 以同样的方式确认,短信没有出现在列表中
  • 我不确定 WhatsApp 是如何做到的,但您可以让应用程序向自己发送一条数据消息,它不会显示在本机应用程序中。此外,如果在验证时选择 WhatsApp 作为默认 SMS 应用程序,它可以选择不将消息写入 Provider,因此它不会显示在“列表”中。
  • 请解释“应用程序向自身发送数据消息”,
  • 请添加数据短信作为答案,以便我接受

标签: android sms


【解决方案1】:

从 Android 4.4 (KitKat) 开始,只有被选为默认 SMS 应用的应用才具有对 Provider 的标准写入权限。如果您的应用是默认应用,则它负责编写所有传入和自己的传出消息,并且可以选择不这样做。

另一种可能是使用数据消息,因为这些消息不由 Provider 处理,因此不会显示在其他 SMS 应用程序中。 This post 演示了如何发送数据消息,以及如何配置广播接收器来查找它们。

【讨论】:

  • 非常感谢!它有帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-11
  • 2012-09-12
  • 1970-01-01
  • 2018-02-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多