怎么把android gps坐标位置上传到服务器

怎么把android gps坐标位置上传到服务器,第1张

在配备Android系统的手机中,一般都配备了GPS设备。Android为我们获取GPS数据提供了很好的接口。本文来说一下如何使用Android获取GPS的经纬度。

1 从Service继承一个类。

2 创建startService()方法

3 创建endService()方法 重载onCreate方法和onDestroy方法,并在这两个方法里面来调用startService以及endService。

4 在startService中,通过getSystemService方法获取Context.LOCATION_SERVICE。

5 基于LocationListener实现一个新类。默认将重载四个方法onLocationChanged、onProviderDisabled、onProviderEnabled、onStatusChanged。对于onLocationChanged方法是我们更新最新的GPS数据的方法。一般我们的操作都只需要在这里进行处理。

6 调用LocationManager的requestLocationUpdates方法,来定期触发获取GPS数据即可。在onLocationChanged函数里面可以实现我们对得到的经纬度的最终操作。

7 最后在我们的Activity里面通过按钮来启动Service,停止Service。

示意代码如下:

package com.offbye.gpsservice

import android.app.Service

import android.content.Context

import android.content.Intent

import android.location.LocationListener

import android.location.LocationManager

import android.os.Binder

import android.os.IBinder

import android.util.Log

public class GPSService extends Service {

// 2000ms

private static final long minTime = 2000

// 最小变更距离10m

private static final float minDistance = 10

String tag = this.toString()

private LocationManager locationManager

private LocationListener locationListener

private final IBinder mBinder = new GPSServiceBinder()

public void startService() {

locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE)

locationListener = new GPSServiceListener()

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime, minDistance,

locationListener)

}

public void endService() {

if (locationManager != null &&locationListener != null) {

locationManager.removeUpdates(locationListener)

}

}

@Override

public IBinder onBind(Intent arg0) {

// TODO Auto-generated method stub

return mBinder

}

@Override

public void onCreate() {

//

startService()

Log.v(tag, "GPSService Started.")

}

@Override

public void onDestroy() {

endService()

Log.v(tag, "GPSService Ended.")

}

public class GPSServiceBinder extends Binder {

GPSService getService() {

return GPSService.this

}

}

}

GPSServiceListener的实现

package com.offbye.gpsservice

import java.text.DateFormat

import java.text.SimpleDateFormat

import java.util.Calendar

import java.util.GregorianCalendar

import java.util.TimeZone

import android.location.Location

import android.location.LocationListener

import android.location.LocationProvider

import android.os.Bundle

import android.util.Log

import android.widget.Toast

public class GPSServiceListener implements LocationListener {

private static final String tag = "GPSServiceListener"

private static final float minAccuracyMeters = 35

private static final String hostUrl = "http://doandroid.info/gpsservice/position.php?"

private static final String user = "huzhangyou"

private static final String pass = "123456"

private static final int duration = 10

private final DateFormat timestampFormat = new SimpleDateFormat("yyyyMMddHHmmss")

public int GPSCurrentStatus

@Override

public void onLocationChanged(Location location) {

// TODO Auto-generated method stub

if (location != null) {

if (location.hasAccuracy() &&location.getAccuracy() <= minAccuracyMeters) {

// 获取时间参数,将时间一并Post到服务器

GregorianCalendar greg = new GregorianCalendar()

TimeZone tz = greg.getTimeZone()

int ffset = tz.getOffset(System.currentTimeMillis())

greg.add(Calendar.SECOND, (offset / 1000) * -1)

StringBuffer strBuffer = new StringBuffer()

strBuffer.append(hostUrl)

strBuffer.append("user=")

strBuffer.append(user)

strBuffer.append("&pass=")

strBuffer.append(pass)

strBuffer.append("&Latitude=")

strBuffer.append(location.getLatitude())

strBuffer.append("&Longitude=")

strBuffer.append(location.getLongitude())

strBuffer.append("&Time=")

strBuffer.append(timestampFormat.format(greg.getTime()))

strBuffer.append("&Speed=")

strBuffer.append(location.hasSpeed())

doGet(strBuffer.toString())

Log.v(tag, strBuffer.toString())

}

}

}

// 将数据通过get的方式发送到服务器,服务器可以根据这个数据进行跟踪用户的行走状态

private void doGet(String string) {

// TODO Auto-generated method stub

//

}

@Override

public void onProviderDisabled(String provider) {

// TODO Auto-generated method stub

}

@Override

public void onProviderEnabled(String provider) {

// TODO Auto-generated method stub

}

@Override

public void onStatusChanged(String provider, int status, Bundle extras) {

// TODO Auto-generated method stub

GPSCurrentStatus = status

}

}

摘自 offbye的技术博客

架设服务器平台,很简单;这里介绍一个 GPSBD卫星定位监控系统Simple版本的定位系统

他们系统是JAVA开发,首先服务器需要搭建JAVA环境,Mysql数据库,以及Reids缓存服务;

然后启动程序文件,一步一步操作即可;经过测试系统基本上市面上的各类GPS北斗定位设备都是支持的

在自己服务器搭建好GPS平台以后,就可以将设备的IP 端口配置到自己服务器对应的IP端口上,这样设备数据就会发往服务器,然后通过这套GPS定位系统就可以查看位置了

GPS数据传输方式主要是通过电信或移动运营商的无线网络来进行传输,每个设备中有一张移动或联通或电信的SIM卡,GPS设备中的GPS模块在与卫星进行通讯并采集到位置数据后,通过设备中的通讯模块(GPRS或cdma)通过SIM卡为介质,利用运营商无线网络传输到运营商服务器上,再由运营商服务器通过互联网传输到企业服务器。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/573614.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-04
下一篇2023-07-04

发表评论

登录后才能评论

评论列表(0条)

    保存