Android 适用于和API 19及更高版本的SMS接收器
我的工作是创建短信应用程序来隐藏选定的号码,这样就不会进一步陷入默认短信应用程序,这项任务是简单的API,用于“在默认情况下需要使用我的短信接收器时,建议某人如何解决问题?”-这一点尚不清楚。你的意思是你的应用程序是默认的,还是不是默认的?好的,因为你不想响应,出于某种原因:如果你的应用程序不是默认的,你不能阻止默认应用程序接收和写入传入消息。如果你的应用程序是默认的,那么你只需要不写任何你不想写的传入消息,但是你不能阻止任何其他应用程序接收到的Android 适用于和API 19及更高版本的SMS接收器,android,broadcastreceiver,Android,Broadcastreceiver,我的工作是创建短信应用程序来隐藏选定的号码,这样就不会进一步陷入默认短信应用程序,这项任务是简单的API,用于“在默认情况下需要使用我的短信接收器时,建议某人如何解决问题?”-这一点尚不清楚。你的意思是你的应用程序是默认的,还是不是默认的?好的,因为你不想响应,出于某种原因:如果你的应用程序不是默认的,你不能阻止默认应用程序接收和写入传入消息。如果你的应用程序是默认的,那么你只需要不写任何你不想写的传入消息,但是你不能阻止任何其他应用程序接收到的SMS\u广播,如果他们正在收听。好的,最好解释一
SMS\u
广播,如果他们正在收听。好的,最好解释一下问题。我有两种短信,第一种是正常的人际交流,这种交流我需要捕捉默认的短信应用程序。第二种是来自监控生产机器的发送方的SMS通信。这份报告充满了描述设施状况的毫无意义的数字。如果我收到这条消息,我需要另一个接收器来截获,在我的应用程序中,我可以在报告中声明警报、绘制图表等。这些设施的报告应该出现在默认的SMS应用程序中。不显示的一个原因是,这些报告将以每分钟10次的速度出现——很多。一个问题是,在有必要为ANDROID API版本>=19的员工购买新手机之后,这一功能就停止了。很清楚吗?是的,我之前的评论仍然适用。如果您的应用程序不是默认的SMS应用程序,则无法停止默认应用程序接收和保存传入的消息。如果您想继续使用SMS实现此功能,我看到两个选项:1)将您的应用程序设为默认SMS应用程序。默认设置负责保存消息和创建通知,并且可以选择不为报告消息执行这些操作。2.)切换到对报告使用数据SMS。这些是针对特定应用程序/端口的,默认应用程序根本不应对其作出反应。“在默认情况下,当您需要使用我的SMS接收器时,建议某人如何解决问题?”-这一点尚不清楚。你的意思是你的应用程序是默认的,还是不是默认的?好的,因为你不想响应,出于某种原因:如果你的应用程序不是默认的,你不能阻止默认应用程序接收和写入传入消息。如果你的应用程序是默认的,那么你只需要不写任何你不想写的传入消息,但是你不能阻止任何其他应用程序接收到的SMS\u
广播,如果他们正在收听。好的,最好解释一下问题。我有两种短信,第一种是正常的人际交流,这种交流我需要捕捉默认的短信应用程序。第二种是来自监控生产机器的发送方的SMS通信。这份报告充满了描述设施状况的毫无意义的数字。如果我收到这条消息,我需要另一个接收器来截获,在我的应用程序中,我可以在报告中声明警报、绘制图表等。这些设施的报告应该出现在默认的SMS应用程序中。不显示的一个原因是,这些报告将以每分钟10次的速度出现——很多。一个问题是,在有必要为ANDROID API版本>=19的员工购买新手机之后,这一功能就停止了。很清楚吗?是的,我之前的评论仍然适用。如果您的应用程序不是默认的SMS应用程序,则无法停止默认应用程序接收和保存传入的消息。如果您想继续使用SMS实现此功能,我看到两个选项:1)将您的应用程序设为默认SMS应用程序。默认设置负责保存消息和创建通知,并且可以选择不为报告消息执行这些操作。2.)切换到对报告使用数据SMS。这些是针对特定应用程序/端口的,默认应用程序根本不应对其作出反应。
public class SMSReceiver extends BroadcastReceiver {
public static String TAG = "SMSReceiver";
ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);
public SMSReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
SMS_Throttle.VytvorDatabazi(context);
String act = intent.getAction();
Log.d(TAG, act);
if (Dtb.HodnotaZNastaveniINT(ENastaveni.START_SKRYTE_SLUZBY, 1) == 1) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
boolean isAbort = false;
if (bundle != null) {
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
String lst[][] = SMS_Throttle.getTlfCisla(context);
String[] l = new String[lst.length];
for (int j = 0; j < lst.length; j++)
l[j] = lst[j][0];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
for (int j = 0; j < l.length; j++) {
if (msgs[i].getOriginatingAddress().endsWith(l[j])) {
if (Dtb.HodnotaZNastaveniINT(ENastaveni.PRISLA_AKTIVITA, 0) == 1) {
tg.startTone(ToneGenerator.TONE_DTMF_5, 30);
Toast.makeText(context, msgs[i].getMessageBody(), Toast.LENGTH_LONG).show();
}
isAbort = true;
Dtb.UlozActivitu(l[j], msgs[i].getMessageBody(), EKomunType.RECEIVE_SMS);
}
}
}
}
if (isAbort) {
abortBroadcast();
}
}
}