Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
需要关于android应用程序开发的建议吗_Android_Google Maps_Gps - Fatal编程技术网

需要关于android应用程序开发的建议吗

需要关于android应用程序开发的建议吗,android,google-maps,gps,Android,Google Maps,Gps,我现在开始做我最后一年的项目。我正在做一个叫做智能车队管理系统的项目,使用android操作系统。我需要从像intellitrac x1这样的gps跟踪器获取位置数据,并显示在我的android应用程序中。我对如何开始这个项目感到困惑。我希望你们能给我一些指导。谢谢。这是我在应用程序中使用的代码。我用它来获取用户的当前位置 public class AndroidLocationActivity { String provider;

我现在开始做我最后一年的项目。我正在做一个叫做智能车队管理系统的项目,使用android操作系统。我需要从像intellitrac x1这样的gps跟踪器获取位置数据,并显示在我的android应用程序中。我对如何开始这个项目感到困惑。我希望你们能给我一些指导。谢谢。

这是我在应用程序中使用的代码。我用它来获取用户的当前位置

public class AndroidLocationActivity {    
        String provider;
                    public double latitude, longitude = 0;
                    CurrentPositionTask getCurrentLocation;
                    Location currentLocation;
                    LocationListener locationListener;
                    LocationManager locationManager;
                    private long time=0;

                    @Override
                    public void onCreate(Bundle savedInstanceState) {
                        super.onCreate(savedInstanceState);
                        setContentView(R.layout.main);

                        try {
                            locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
                            setCriteria();
                            currentLocation = AndroidLocationActivity.this.locationManager.getLastKnownLocation(provider);

                            if (currentLocation == null) {
                                currentLocation = new Location(provider);
                            }
                            time = currentLocation.getTime();

                            if (latitude == 0 && longitude == 0) {
                                latitude = currentLocation.getLatitude();
                                longitude = currentLocation.getLongitude();    
                            }

                        } catch (NullPointerException e) {
                            // TODO: handle exception
                            System.out.println("Null");
                            e.printStackTrace();
                        } 
                        catch (Exception e) {
                            // TODO: handle exception
                            e.printStackTrace();
                        }

                        runAsyncTask();    
                    }

                    @Override
                    protected void onDestroy() {
                        // TODO Auto-generated method stub
                        super.onDestroy();
                        locationManager.removeUpdates(locationListener);
                    }

                    public void setCriteria() {
                        Criteria criteria = new Criteria();
                        criteria.setAccuracy(Criteria.ACCURACY_FINE);
                        criteria.setAltitudeRequired(false);
                        criteria.setBearingRequired(false);
                        criteria.setCostAllowed(true);
                        criteria.setPowerRequirement(Criteria.POWER_MEDIUM);
                        provider = locationManager.getBestProvider(criteria, true);
                        if (provider == null) {
                            provider = LocationManager.GPS_PROVIDER;
                        }
                    }    


                    public void runAsyncTask() {
                        // TODO Auto-generated method stub
                        if (getCurrentLocation == null) {
                            getCurrentLocation = new CurrentPositionTask();    
                        }

                        if (getCurrentLocation != null) {
                            getCurrentLocation.execute("Searching for Location");    
                        }
                    }

                    public boolean checkConnection()
                    {
                        //ARE WE CONNECTED TO THE NET

                        ConnectivityManager conMgr = (ConnectivityManager) getSystemService (AndroidLocationActivity.CONNECTIVITY_SERVICE);
                        if (conMgr.getActiveNetworkInfo() != null && conMgr.getActiveNetworkInfo().isAvailable()&& conMgr.getActiveNetworkInfo().isConnected()) {
                            return true;
                        } else {
                            return false;
                        }
                    } 


                    private class CurrentPositionTask extends AsyncTask<String, Void, Void>
                    {
                        private ProgressDialog Dialog = new ProgressDialog(AndroidLocationActivity.this);
                        private boolean flag = true;

                        public CurrentPositionTask() {
                            locationListener = new MyLocationListener();
                        }

                        @Override
                        protected void onPreExecute() {
                            // TODO Auto-generated method stub
                            super.onPreExecute();
                            try {
                                if (checkConnection()) {
                                    Dialog.setTitle("Loading");
                                    Dialog.setMessage("Searching for Location");
                                    Dialog.show();
                                    locationManager.requestLocationUpdates(provider, 0, 0, locationListener);
                                }
                                else {
                                    Toast.makeText(getApplicationContext(), "Internet is Not Available", Toast.LENGTH_LONG).show();
                                }    
                            } catch (Exception e) {
                                // TODO: handle exception
                                e.printStackTrace();
                            }
                        }

                        @Override
                        protected Void doInBackground(String... params) {
                            // TODO Auto-generated method stub
                            while (flag) {
                                if (latitude !=0 && longitude != 0) {
                                    flag=false;
                                }
                            }
                            return null;
                        }

                        @Override
                        protected void onPostExecute(Void result) {
                            // TODO Auto-generated method stub
                            super.onPostExecute(result);
                            if (Dialog != null && Dialog.isShowing()) {
                                Dialog.dismiss();
                                Intent homeIntent = new Intent(AndroidLocationActivity.this.getApplicationContext(), nextactivityname.class);

因此,通过这种方式,您可以借助android中提供的GPS获取当前位置。希望这将有助于……

您在项目中到底想做什么?请告诉我一些细节。我在安卓系统上工作过LBS。所以,请给我一些更多的信息,以便我可以指导你的项目…在这个项目中,我需要开发一个运行在android上的车队管理应用程序。该应用程序将从gps接收器获取位置数据,并在谷歌地图中显示。纬度和经度对吗?是的,我需要获取纬度和经度。@user1258686请编辑/更新您的问题以包括您的实际问题您需要通过android获取GPS接收器的纬度和经度,并在谷歌地图上显示位置
homeIntent.putExtra("lat", latitude);
        homeIntent.putExtra("lng", longitude);

                            startActivity(homeIntent);
                            }
                            locationManager.removeUpdates(locationListener);
                        }
                    }

                    class MyLocationListener implements LocationListener {

                        @Override
                        public void onLocationChanged(Location location) {
                            // TODO Auto-generated method stub
                            if (location != null) {
                                latitude = location.getLatitude();
                                longitude = location.getLongitude();    
                            }
                        }

                        @Override
                        public void onProviderDisabled(String arg0) {
                            // TODO Auto-generated method stub
                            Toast.makeText( getApplicationContext(),"Gps Disabled",Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onProviderEnabled(String arg0) {
                            // TODO Auto-generated method stub
                            Toast.makeText( getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show();
                        }

                        @Override
                        public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
                            // TODO Auto-generated method stub
                        }
                    }
    }