gpt4 book ai didi

Android - 删除发送给自己的手机验证短信

转载 作者:行者123 更新时间:2023-11-30 02:18:18 25 4
gpt4 key购买 nike

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

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

发送短信代码:

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

消费thr SMS的代码:

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();
}
}
}

这是 list :

<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"是否意味着接收器/我的应用程序将只捕获从应用程序本身发送的短信?除了应用程序发送的内容之外,我不想将电池浪费在短信上。

最佳答案

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

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

关于Android - 删除发送给自己的手机验证短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28931122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com