Android 如何测试GPS状态?

Android 如何测试GPS状态?,android,google-maps,gps,Android,Google Maps,Gps,我现在创建了一个应用程序,通过GPS检测设备的位置,我的GPS状态有问题,我通过GpsStatus.Listener查看,但这很复杂,因为我是Android的新手 这是我试图用GPS状态做的事情我在正确的轨道上吗 final Listener onGpsStatusChange = new GpsStatus.Listener() { @Override public void onGpsStatusChanged(int event) {

我现在创建了一个应用程序,通过GPS检测设备的位置,我的GPS状态有问题,我通过GpsStatus.Listener查看,但这很复杂,因为我是Android的新手

这是我试图用GPS状态做的事情我在正确的轨道上吗

    final Listener onGpsStatusChange = new GpsStatus.Listener() {

        @Override
        public void onGpsStatusChanged(int event) {
            // TODO Auto-generated method stub
            switch(event){
            case GpsStatus.GPS_EVENT_STARTED:
            // Started...
            break ;
            case GpsStatus.GPS_EVENT_FIRST_FIX:
            // First Fix...
            break ;
            case GpsStatus.GPS_EVENT_STOPPED:
            // Stopped...
            break ;
            }
        }
    };
我想测试设备是否:

  • 不变
  • 新位置
  • 开始_
  • 没有gps数据
你能用例子解释一下GPSs的状态吗??,谢谢

编辑: 伙计们,到目前为止,它非常有用,现在我坚持不更改位置:当用户仍然停留在同一位置时,onLocationChange方法将不会被触发,我错了吗?那么我如何测试它才能发送到服务器呢?:)

看看,GPS状态是关于GPS引擎本身的,而不是位置通知,并且在所有平台/设备上都不可靠,甚至无法确定您是否已修复

或者,一个更老但仍然相关的

看看,GPS状态是关于GPS引擎本身,而不是位置通知,并且在所有平台/设备上都不可靠,甚至无法确定您是否已经/已经修复


或者,当从框架中调用onGpsStatusChanged()时,表示存在有效的gps状态更新。使用getGpsStatus()检索最新的GPS状态更新

public void onGpsStatusChanged(int event) {
        if (event == GpsStatus.GPS_EVENT_STARTED) {
            Log.d(TAG , "GPS event started ");

        } else if (event == GpsStatus.GPS_EVENT_STOPPED) {
            Log.d(TAG , "GPS event stopped ");

        } else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {

            GpsStatus gs = locationManager.getGpsStatus(null);
您可以使用上面的代码段。请注意,您需要的一些数据位于GpsStatus结构中


您需要的其他信息(如新位置)可以从onLocationChanged()回调中获得

当从框架中调用onGpsStatusChanged()时,表示存在有效的gps状态更新。使用getGpsStatus()检索最新的GPS状态更新

public void onGpsStatusChanged(int event) {
        if (event == GpsStatus.GPS_EVENT_STARTED) {
            Log.d(TAG , "GPS event started ");

        } else if (event == GpsStatus.GPS_EVENT_STOPPED) {
            Log.d(TAG , "GPS event stopped ");

        } else if (event == GpsStatus.GPS_EVENT_FIRST_FIX) {

            GpsStatus gs = locationManager.getGpsStatus(null);
您可以使用上面的代码段。请注意,您需要的一些数据位于GpsStatus结构中


您需要的其他信息(如新位置)可以从onLocationChanged()回调中获得

你所说的有效gps状态是什么意思,你是说gps可用???如果无效,则表示没有gps??gps不变怎么样?如何测试它??不,我的意思是新的GPS状态可用。你对“不变”的定义是什么没有位置改变?没有状态变化?雷诺:我所说的没有变化是指当gps保持不变时,没有变化,所以在这种情况下,它的意思是相同的,它不会触发onLocationChange方法,对吗?因此,我想将当前数据重新发送到服务器,在哪里测试它?这取决于requestforlocationupdates()的参数。如果您的意思是“不改变位置”,则取决于mintime参数。如果您将其设置为1000,即使位置没有变化,onLocationChanged也会每隔一秒钟调用一次。您所说的有效gps状态是什么意思,您是指gps可用???如果无效,则表示没有gps??gps不变怎么样?如何测试它??不,我的意思是新的GPS状态可用。你对“不变”的定义是什么没有位置改变?没有状态变化?雷诺:我所说的没有变化是指当gps保持不变时,没有变化,所以在这种情况下,它的意思是相同的,它不会触发onLocationChange方法,对吗?因此,我想将当前数据重新发送到服务器,在哪里测试它?这取决于requestforlocationupdates()的参数。如果您的意思是“不改变位置”,则取决于mintime参数。如果将其设置为1000,即使位置没有更改,onLocationChanged也会每隔一秒钟调用一次。