通过短信接收另一个Android手机gps位置

时间:2013-04-29 14:16:37

标签: android google-maps gps sms tracking

我正在尝试创建一个应用程序,理论上它将跟踪一个拥有gps芯片领的动物并将其显示在地图上。 我目前正在运行的地图显示用户当前位置,但是还需要显示“动物”(测试手机)。 我计划使用另一部手机作为报告的例子,但我不确定如何接收其他手机的GPS坐标。 我被建议使用短信而不是互联网服务器,因为这对我的时间表来说可能太复杂了。 我想知道的是,是否有可能让我的应用程序发送短信到另一部手机并请求其GPS位置并通过短信接收并在谷歌地图上显示? 如果它是你知道的教程这样做。 任何信息将不胜感激。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

实施它并不是非常简单快捷。首先,您需要在测试电话上“等待”短信的组件(可能是broadcastReceiver)。您可以注册接收器以触发短信事件并检查发送者,例如,或文本本身,以查看它是否是“请求-gps”短信。当您收到短信时,您可以启动服务以跟踪您的GPS位置,当您获得该位置时,您可以使用该位置回复此号码。在您的应用程序(首先发送短信)中,您会收到带有GPS位置的短信,并且您可以在地图中显示该位置。

所以用户发送短信:

smsManager.sendTextMessage(smsNumber, null, requestGps, null, null);

在“动物方面”有接收者:

   @Override
      public void onReceive(Context context, Intent intent) {


        //---get the SMS message passed in---
        Bundle bundle = intent.getExtras();        
        SmsMessage[] msgs = null;
        String sender = "";            
        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]);                
                sender += msgs[i].getOriginatingAddress(); 
            }   
        } 
  }

在服务(总是“动物”一侧)上,您注册GPS位置,然后您回复短信

smsManager.sendTextMessage(smsNumber, null, gpsLocation, null, null);

在用户端,您会收到与“动物”完全相同的短信,然后在地图上显示GPS坐标

答案 1 :(得分:0)

这很有可能。你需要的是两部手机上带有RECEIVE_SMS滤波器的接收器。第一个应用程序可以通过一些特定代码向跟踪端的电话发送短信。在onReceive方法中,您可以检查SMS是否包含您的代码,如果匹配,您可以通过创建LocationManager对象并使用requestLocationUpdates方法注册侦听器来开始跟踪位置。在onLocationChanged方法中,您可以向第一个移动设备发送短信和经度详细信息。

第一部手机中的接收器可以解析此纬度和经度值,并在您的应用中显示。