How can I get location without internet in android, using only GPS

匿名 (未验证) 提交于 2019-12-03 02:16:02

问题:

I want to get location using GPS only. I don't want to use internet and GPRS in this application. My code is below; tell me where I'm wrong in this.

code:

package com.getlocation;  import android.app.Activity; import android.content.Context; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.util.Log; import android.widget.Toast;  public class UseGps extends Activity {     /** Called when the activity is first created. */     private String provider;     LocationManager locationManager;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main); /*                                          * Use the LocationManager class to                                          * obtain GPS locations                                          */         locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);         LocationListener mlocListener = new MyLocationListener();          Criteria criteria = new Criteria();             criteria.setAccuracy(Criteria.ACCURACY_COARSE);             criteria.setAccuracy(Criteria.ACCURACY_FINE);             provider = locationManager.getBestProvider(criteria, true);             locationManager.requestLocationUpdates(provider, 61000, 250,                 mlocListener);     } /* Class My Location Listener */ public class MyLocationListener implements LocationListener {     @Override     public void onLocationChanged(Location loc) {         loc.getLatitude();         loc.getLongitude();         String Text = "My current location is: " + "Latitude = "                 + loc.getLatitude() + "Longitude = " + loc.getLongitude();         Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT)                 .show();         Log.d("TAG", "Starting..");     }      @Override     public void onProviderDisabled(String provider) {         Toast.makeText(getApplicationContext(), "Gps Disabled",                 Toast.LENGTH_SHORT).show();     }      @Override     public void onProviderEnabled(String provider) {         Toast.makeText(getApplicationContext(), "Gps Enabled",                 Toast.LENGTH_SHORT).show();     }      @Override     public void onStatusChanged(String provider, int status, Bundle extras) {     } }/* End of Class MyLocationListener */ }/* End of UseGps Activity */

回答1:

Use this for only GPS Provider, it does not need GPRS.

locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);  <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>

You need to put the permission in manifest file.



回答2:

You don't need an internet connection to run GPS system in your mobile. GPS time synchronization does not require an Internet connection. But if you want to show the current location on google map, you may require internet connection.

Coming to you code everything looks fine for me.

Try this code in your activity.

LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);  LocationListener mlocListener = new YourLocationListener(getApplicationContext(), mobileNo, deviceId); mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,mlocListener);

and include this in androidmanifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <uses-permission android:name="android.permission.ACCESS_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_GPS" /> <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!