gpt4 book ai didi

java - 阻止传入短信

转载 作者:行者123 更新时间:2023-12-01 09:57:24 25 4
gpt4 key购买 nike

我试图阻止我的 Android 设备中的所有传入短信。

这是我正在使用的代码-

public class SmsReceiver extends BroadcastReceiver {
/**
* Called when the activity is first created.
*/
private static final String ACTION = "android.provider.Telephony.SEND_SMS";
public static int MSG_TPE = 0;

@Override
public void onReceive(Context context, Intent intent) {
String MSG_TYPE = intent.getAction();
if (MSG_TYPE.equals("android.provider.Telephony.SMS_RECEIVED")) {

Bundle bundle = intent.getExtras();
Object messages[] = (Object[]) bundle.get("pdus");
SmsMessage smsMessage[] = new SmsMessage[messages.length];
for (int n = 0; n < messages.length; n++) {
smsMessage[n] = SmsMessage.createFromPdu((byte[]) messages[n]);
}

// show first message
Toast toast = Toast.makeText(context, "BLOCKED Received SMS: " + smsMessage[0].getMessageBody(), Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for (int i = 0; i < 8; i++) {
Log.i("log", "Blocking SMS **********************");
}

} else if (MSG_TYPE.equals("android.provider.Telephony.SEND_SMS")) {
Toast toast = Toast.makeText(context, "SMS SENT: " + MSG_TYPE, Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for (int i = 0; i < 8; i++) {
Log.i("log", "Blocking SMS **********************");
}

} else {

Toast toast = Toast.makeText(context, "SIN ELSE: " + MSG_TYPE, Toast.LENGTH_LONG);
toast.show();
abortBroadcast();
for (int i = 0; i < 8; i++) {
Log.i("log", "Blocking SMS **********************");
}

}

}

}

list 文件-

    <service android:name=".MyServiceSentReceived" android:enabled="true"/>

<receiver android:name="SmsReceiver">
<intent-filter android:priority="2147483645">
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>

它显示我阻止短信,但再次收到短信。所以这段代码对我不起作用。我正在关注this所以问题。

我正在考虑的其他问题是 -

Block SMS in android

Android Block Incoming SMS using BroadCastReceiver

有人对此有任何建议吗?

最佳答案

自 API 19 (KitKat) 起,您无法阻止传入的短信,除非您的应用是默认消息应用,即使如此,您也只能阻止它们保存到短信提供商。

SMS_RECEIVED 广播无法再中止,因此任何监听它的应用程序仍会收到它。此外,默认应用程序无论如何都会收到不同的广播 - SMS_DELIVER - 任何其他应用程序都不会收到该广播,并且无法拦截。

如果您的应用程序是默认短信应用程序,则它负责将传入消息写入短信提供程序,因此如果您不希望将它们保存在那里,则不要写入它们。不过,这不会对 SMS_RECEIVED 广播产生任何影响,该广播仍会传送到为其注册的任何应用,但这些应用无法将其写入提供程序。

以下博客页面讨论 SMS API 更改,并包含有关应用程序充当默认消息应用程序的要求的详细信息。但请注意,默认应用程序负责很多很多事情 - 也包括彩信 - 并且编写成熟的消息传递客户端并不是一项简单的任务。

Getting Your SMS Apps Ready for KitKat

关于java - 阻止传入短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37085235/

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