所以基本上这是一个由某人制作的脚本,我可以运行该程序,但不能在我的php中通过Android接收POST。根据制造商的说法:
这是一款Android应用,我在几个小时内就把它放在一起,在手机上定期进行GPS定位跟踪并发送GPS坐标 到HTTP服务器。
输入接受POST请求的URL,选择轮询间隔,然后选择 点按"启用跟踪"。 Android位置管理器将返回GPS 每隔一段时间(这不准确)和 信息将发布到您的网址。
POSTed参数是位置数组,每个元素都是一个哈希值 包括时间(来自位置服务的Unix时间戳),纬度 和经度(任意精度的两个浮点值)和速度 每秒米。
我已经在PHP中尝试了一些方法,例如:
$locations = $_REQUEST['locations']; // Get all POST arrays
$i = 2; // Choose first locations array
// Now you can access single fields with:
$time = $locations[i]['time'];
$latitude = $locations[i]['latitude'];
$longitude = $locations[i]['longitude'];
$speed = $locations[i]['speed'];
$sogilat = $_POST['latitude'];
$sogilong = $_POST['longitude'];
$data = json_decode($_POST['latitude']);
echo $data->latitude;
但没有运气,附上了部分代码:
private void sendLocation(Location location) {
List<NameValuePair> pairs = new ArrayList<NameValuePair>(2);
pairs.add(new BasicNameValuePair("time",
String.valueOf(location.getTime())));
pairs.add(new BasicNameValuePair("latitude",
String.valueOf(location.getLatitude())));
pairs.add(new BasicNameValuePair("longitude",
String.valueOf(location.getLongitude())));
pairs.add(new BasicNameValuePair("speed",
String.valueOf(location.getSpeed())));
/* push these pairs onto the queue, and only run the poster if another
* one isn't running already (if it is, it will keep running through
* the queue until it's empty) */
updateLock.writeLock().lock();
mUpdates.add(pairs);
int size = service.getUpdatesSize();
cacheUpdates();
updateLock.writeLock().unlock();
logText("location " +
(new DecimalFormat("#.######").format(location.getLatitude())) +
", " +
(new DecimalFormat("#.######").format(location.getLongitude())) +
(size <= 1 ? "" : " (" + size + " queued)"));
if (httpPoster == null ||
httpPoster.getStatus() == AsyncTask.Status.FINISHED)
(httpPoster = new HttpPoster()).execute();
}
可以找到完整的脚本here
请帮助,谢谢......