【问题标题】:How can i send just two parameters to a web server using JSON at regular intervals?如何定期使用 JSON 将两个参数发送到 Web 服务器?
【发布时间】:2023-03-14 08:50:02
【问题描述】:

该应用程序基于 GPS 跟踪,其中必须定期发送纬度和经度坐标。现在我们通过 DDMS 手动输入坐标。发送数据一直是个大问题。那么,大家有什么建议吗?

【问题讨论】:

    标签: java android xml json


    【解决方案1】:

    我认为您必须将位置存储在某个位置,因此创建 ApplicationController,它从 android 扩展 Application 类并将其设置在 android 清单中,在 AC 创建字段 Location 和 onLocationChanged(Location location) made 函数中,它将在 AC 中保存新位置而不是 made TimerTask 与频率它应该多久从 AC 获取位置并将其发送到您想要的任何地方。

    ApplicationController 将保留所有信息,只要应用程序在该类中“活动”,您还必须创建访问器;)下面的示例代码:

    ApplicationController.java

    import android.app.Application;
    import android.location.Location;
    
    public class ApplicationController extends Application{
        private Location location = null;
    
        @Override
        public void onCreate() {
            super.onCreate();
        }
    
        public void setLocation(Location location){
            this.location = location;
        }
    
        public Location getLocation(){
            return location; 
        }
    }
    

    在 android manifest 中输入:

        <application 
            android:label="@string/app_name" 
            android:allowClearUserData="false" android:name="core.ApplicationController" 
    android:icon="@drawable/driving">
    

    代码中的示例使用:

    AC = (ApplicationController) getApplicationContext();
    
        private void initializeGpsTask(long frequency){
            gpsTask = new TimerTask() {
                @Override
                public void run() {
                    Log.i(TAG, "GPS TASK");
                    if(AC.getLocation()!=null){
                    insertIntoDatabase(transactions.generateRequest(
                                            AC.getLocation()));
                    }
                }
            };
            Timer timer = new Timer();
            timer.schedule(gpsTask, frequency, frequency);-
    }
    

    这可能会有所帮助LINK

    【讨论】:

      【解决方案2】:

      你必须实现 locationListener 类来监听位置

      onLocationChanged(Location location) {
      
      lat = location.getLatitude();
      lon = location.getLongitude(0;
      }
      

      现在,当您获得纬度和经度时,您必须定期将其发送到服务器。 您可以使用该服务从后台侦听位置信息,如果您收到onLocationChanged 事件,请与您的 Web 服务建立 http 连接并将纬度和经度发布到服务器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-04
        • 1970-01-01
        • 1970-01-01
        • 2016-06-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多