我正在尝试创建一个应用程序,该应用程序理论上将跟踪一个有 GPS 缺口项圈的动物并将其显示在地图上。我目前正在运行显示用户当前位置的地图,但还需要显示“动物”(测试手机)。我计划使用另一部手机作为报告的示例,但我不确定如何接收其他手机的 gps 坐标。有人建议我使用短信而不是互联网服务器,因为这对我的时间尺度来说可能太复杂了。我想知道的是,是否可以让我的应用程序向另一部手机发送短信并请求其 GPS 位置并通过短信接收并显示在谷歌地图上?如果是你知道这样做的教程。任何信息将不胜感激。先感谢您。
问问题
5197 次
2 回答
1
实现它不是很简单和快速。首先,您需要在测试手机上“等待”短信的组件(可能是广播接收器)。例如,您可以注册您的接收器以触发 sms 事件并检查发件人,或者检查文本本身以查看它是否是“request-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 坐标
于 2013-04-29T14:32:41.107 回答
0
这是很有可能的。您需要的是在两部手机上都带有 RECEIVE_SMS 过滤器的接收器。第一个应用程序可以在跟踪端向手机发送带有特定代码的短信。在 onReceive 方法中,您可以检查 SMS 是否包含您的代码,如果匹配,您可以通过创建 LocationManager 对象并使用requestLocationUpdates方法注册侦听器来开始跟踪位置。在onLocationChanged方法中,您可以将经纬度详细信息发送回第一部手机。
第一个移动设备中的接收器可以解析此纬度和经度值并将其显示在您的应用程序中。
于 2013-04-29T15:07:41.707 回答