如何在没有互联网的情况下仅使用 GPS 在 android 中获取位置
Posted
技术标签:
【中文标题】如何在没有互联网的情况下仅使用 GPS 在 android 中获取位置【英文标题】:How can I get location without internet in android, using only GPS 【发布时间】:2011-08-26 04:36:05 【问题描述】:我只想使用 GPS 获取位置。我不想在这个应用程序中使用互联网和 GPRS。我的代码如下;告诉我我哪里错了。
代码:
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 */
【问题讨论】:
不反对。这是一个类似的帖子,答案已被接受:***.com/questions/4905385/… 【参考方案1】:仅用于 GPS Provider,不需要 GPRS。
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener);
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
您需要将权限放入清单文件中。
【讨论】:
是的,GPS 是基于卫星的,不需要互联网即可工作。【参考方案2】:您无需连接互联网即可在手机中运行 GPS 系统。 GPS 时间同步不需要互联网连接。但是如果你想在谷歌地图上显示当前位置,你可能需要互联网连接。
为你编写代码对我来说一切都很好。
在您的活动中尝试此代码。
LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
LocationListener mlocListener = new YourLocationListener(getApplicationContext(), mobileNo, deviceId);
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,mlocListener);
并将其包含在 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" />
【讨论】:
@Sam_k 我可以在没有互联网连接的情况下获得当前的 latitute 和 logitute 吗? @PintuCorna 您必须为此使用 GPS 提供以上是关于如何在没有互联网的情况下仅使用 GPS 在 android 中获取位置的主要内容,如果未能解决你的问题,请参考以下文章
在没有互联网的情况下使用 Javascript 获取 GPS 位置 [重复]
我们可以在没有互联网而只有 GPS 的情况下获得纬度和经度吗?
Log4j - 如何在没有其他详细信息的情况下仅将我的消息日志写入文件