如何在不使用互联网的情况下使用GPS接收器?

时间:2011-08-07 12:09:33

标签: java android eclipse gps

我计划使用支持GPS的Android手机创建一个不会使用互联网访问用户当前位置的应用程序。

我需要知道的是如何在Eclipse中编写代码。您是否可以在Java中共享一段代码,该代码将返回GPS用户的经度和纬度而无需访问互联网?

此外,是否有可能使其无法访问蜂窝网络 - 直接从卫星获取用户的位置?

1 个答案:

答案 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