Java 阻止传入短信
我试图阻止我的android设备中所有传入的短信 这是我使用的代码-Java 阻止传入短信,java,android,Java,Android,我试图阻止我的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;
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 **********************");
}
}
}
}
公共类SmsReceiver扩展了BroadcastReceiver{
/**
*在首次创建活动时调用。
*/
私有静态最终字符串ACTION=“android.provider.Telephony.SEND_SMS”;
公共静态int MSG_TPE=0;
@凌驾
公共void onReceive(上下文、意图){
字符串MSG_TYPE=intent.getAction();
if(MSG_TYPE.equals(“android.provider.Telephony.SMS_RECEIVED”)){
Bundle=intent.getExtras();
对象消息[]=(对象[])bundle.get(“PDU”);
SmsMessage SmsMessage[]=新SmsMessage[messages.length];
对于(int n=0;n
清单文件-
<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>
所以我提出了一个问题
我正在考虑的其他问题是-
是否有人对此有任何建议。自API 19(KitKat)以来,您无法阻止传入的SMS,除非您的应用程序是默认的消息传递应用程序,即使如此,您也只能阻止它们保存到SMS提供商
接收到的SMS_
广播不能再中止,因此任何监听该广播的应用程序仍将获得该广播。此外,默认应用程序无论如何都会接收不同的广播-SMS\u DELIVER
,任何其他应用程序都不会接收到该广播,因此无法拦截
如果你的应用程序是默认的SMS应用程序,它负责将传入的消息写入SMS提供商,因此如果你不希望它们保存在那里,就不要写入它们。但是,这对收到的SMS_
广播没有任何影响,该广播仍将发送到为其注册的任何应用程序,尽管这些应用程序无法将其写入提供商
下面的博客页面讨论了SMS API的更改,并详细介绍了作为默认消息传递应用程序的应用程序的要求。不过,请注意,默认应用程序负责很多事情,包括彩信,编写一个完整的消息传递客户端并不是一件小事
自API 19(KitKat)以来,您无法阻止传入的短信,除非您的应用程序是默认的短信应用程序,即使如此,您也只能阻止它们保存到短信提供商
接收到的SMS_
广播不能再中止,因此任何监听该广播的应用程序仍将获得该广播。此外,默认应用程序无论如何都会接收不同的广播-SMS\u DELIVER
,任何其他应用程序都不会接收到该广播,因此无法拦截
如果你的应用程序是默认的SMS应用程序,它负责将传入的消息写入SMS提供商,因此如果你不希望它们保存在那里,就不要写入它们。但是,这对收到的SMS_
广播没有任何影响,该广播仍将发送到为其注册的任何应用程序,尽管这些应用程序无法将其写入提供商
下面的博客页面讨论了SMS API的更改,并详细介绍了作为默认消息传递应用程序的应用程序的要求。不过,请注意,默认应用程序负责很多事情,包括彩信,编写一个完整的消息传递客户端并不是一件小事
有人能告诉我为什么得到这个-1吗?有人能告诉我为什么得到这个-1吗?