Java android通过定位发件人跟踪短信
我正在开发一个应用程序。我有跟踪信息中特定单词的代码,即“位置”。现在我想知道寄件人的位置,请帮忙 我的代码是 公共类SMSReceiver扩展了BroadcastReceiver{ final smsmsmanager sms=smsmsmanager.getDefault()Java android通过定位发件人跟踪短信,java,android,Java,Android,我正在开发一个应用程序。我有跟踪信息中特定单词的代码,即“位置”。现在我想知道寄件人的位置,请帮忙 我的代码是 公共类SMSReceiver扩展了BroadcastReceiver{ final smsmsmanager sms=smsmsmanager.getDefault() @覆盖 公共void onReceive(上下文、意图){ if(intent.getAction().equals(“android.provider.Telephony.SMS_RECEIVED”)){ //从in
@覆盖
公共void onReceive(上下文、意图){
if(intent.getAction().equals(“android.provider.Telephony.SMS_RECEIVED”)){
//从intent中检索扩展数据的映射。
final Bundle=intent.getExtras();
SmsMessage[]msgs=null;
字符串str=“”;
尝试
{
if(bundle!=null){
//--检索收到的sms消息
Object[]pdus=(Object[])bundle.get(“pdus”);
msgs=新SMS消息[PDU.length];
对于(int i=0;It短信元数据中没有位置信息,因此除非信息包含在短信文本中,否则您无法确定发件人的位置。@Mike M。完全是的,就像您所说的,信息包含在短信文本中。因此,我试图跟踪具有特定单词的邮件,并获取使用位置r:)如果是这种情况,那么在检查“位置”时,您可能希望使用contains()
或startsWith()
而不是equals()
。除此之外,我们无法在不了解传入消息格式的情况下进一步帮助您。不过,老实说,这只不过是非常简单、非常基本的字符串操作和解析,您可以从Java文档或在线教程中学习。在发布问题之前,请进行一些研究并尝试自己解决问题.
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
//retrieve a map of the extended data from the intent.
final Bundle bundle = intent.getExtras();
SmsMessage [] msgs = null;
String str = "";
try
{
if(bundle!=null){
//-- retrieve the sms message received
Object[] pdus = (Object[])bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for(int i=0; i<msgs.length; i++)
{
msgs[i] =SmsMessage.createFromPdu((byte[])pdus[i]);
str += "SMS from" + msgs[i].getOriginatingAddress();
str +=":";
str += msgs[i].getMessageBody().toString();
str+="\n";
}
String replyPhone = msgs[0].getOriginatingAddress();
String request = msgs[0].getMessageBody().toString();
if(request.equals("position"))
{
this.abortBroadcast();
Intent i = new Intent(context, RingActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("num", replyPhone);
i.putExtra("msg", request);
context.startActivity(i);
}
}
}catch(Exception e){
Log.e("MyReceiver", "Exception smsReceiver" +e);
}
}
}