相关疑难解决方法(0)

Android:如何定期向服务器发送位置

我正在运行一项Web服务,允许用户记录他们的旅行(有点像Google的MyTracks)作为更大的应用程序的一部分.问题在于,当用户开始旅行或结束旅行时,很容易将数据(包括坐标和其他项目)传递到服务器.作为一个新手,我不知道如何设置一个后台服务,每隔(预定)一段时间(最少3分钟,最多1小时)发送一次位置更新,直到用户标记旅行结束,或直到预设的时间量过去了.

一旦从电话开始旅行,服务器将以电话的轮询周期作为响应,作为更新之间的间隔.这部分工作,因为我可以在手机上显示响应,我的服务器注册用户的操作.类似地,在关闭行程请求时,行程在服务器端关闭.

但是,当我尝试从StartTrack活动内部启动定期跟踪方法时,使用requestLocationUpdates(String provider,long minTime,float minDistance,LocationListener listener),其中minTime是来自服务器的轮询周期,它只是不起作用,我'我没有得到任何错误.所以这意味着我在这一点上一无所知,从来没有使用过Android.

我在这里看到很多关于使用后台服务与处理程序,待定意图和其他类似东西的帖子,但我真的不明白该怎么做.我希望用户在更新过程中在手机上做其他的事情,所以如果你们可以指点我的教程,说明如何实际编写后台服务(也许这些作为单独的类运行?)或其他方式这样做,那将是伟大的.

android

49
推荐指数
2
解决办法
6万
查看次数

在广播接收器/或服务到广播接收器数据传输中获取GPS位置

我是android的新手.
我想在广播接收器中获得GPS定位,但它显示错误.

我的代码是:

public void onReceive(Context context, Intent intent) {
    LocationManager locManager = (LocationManager) 
            getSystemService(Context.LOCATION_SERVICE);
    // errors in getSystemService method
    LocationListener locListener = new MyLocationListener();
    locManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
            locListener);
    Location loc = locManager
            .getLastKnownLocation(LocationManager.GPS_PROVIDER);
    Log.d(" **location**", " location" + loc.getLatitude());
}
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 是否可以在广播接收器中获取GPS定位数据?
  2. 到目前为止,我尝试的另一种替代方法是使用由广播接收器调用的服务.该服务可以获取GPS数据,但我如何在广播接收器中获取?

service android broadcastreceiver

17
推荐指数
2
解决办法
4万
查看次数

标签 统计

android ×2

broadcastreceiver ×1

service ×1