我计划使用支持GPS的Android手机创建一个不会使用互联网访问用户当前位置的应用程序。
我需要知道的是如何在Eclipse中编写代码。您是否可以在Java中共享一段代码,该代码将返回GPS用户的经度和纬度而无需访问互联网?
此外,是否有可能使其无法访问蜂窝网络 - 直接从卫星获取用户的位置?
答案 0 :(得分:3)
将以下行添加到应用程序代码上方的Android Manifest:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
然后您需要一个具有以下代码的活动或服务:
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener() {
onLocationChanged(Location location) {
// put code in here to respond to a change in location
}
onProviderDisabled(String provider) {
// put code in here to respond to GPS being disabled
}
onProviderEnabled(String provider) {
// put code in here to respond to GPS being enabled
}
onStatusChanged(String provider, int status, Bundle extras) {
// put code in here to respond to change in GPS status (e.g. GPS becomes unavailable)
}
});
修改:致电LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, new LocationListener()...
时
这将设置一个侦听GPS的新LocationListener。第一个数字表示每次检查之间的最小毫秒数(注意这只是一个指示符,系统可能会检查更多/更少的频率),第二个数字表示每次检查之间以米为单位的最小行进距离。因此,如果两者都为0,那么将不断检查GPS,并且只要新值可用,就会发送到onLocationChanged()
。
有关详细信息,请参阅http://developer.android.com/guide/topics/location/obtaining-user-location.html