Android 安卓2.2应用程序:30分钟后没有gps信号。30分钟后再次工作,什么也不做

Android 安卓2.2应用程序:30分钟后没有gps信号。30分钟后再次工作,什么也不做,android,gps,Android,Gps,我正在开发HTC Legend,并尝试构建自己的gps日志应用程序。除了我在每一条赛道上都有30分钟的空档之外,一切都如预期的那样进行 我得不到gps数据的时间间隔总是在30到60分钟之间,所以在30分钟的活动之后,我有30分钟没有gps数据。在不做任何事情(甚至不重启应用程序)的情况下,它会在30分钟的休息后再次开始收集数据 有人对此有解释吗?它快把我逼疯了 忘了提到我用直接的requestLocationUpdates收集数据,但这里没有问题 编辑:按要求编写示例代码: privat

我正在开发HTC Legend,并尝试构建自己的gps日志应用程序。除了我在每一条赛道上都有30分钟的空档之外,一切都如预期的那样进行

我得不到gps数据的时间间隔总是在30到60分钟之间,所以在30分钟的活动之后,我有30分钟没有gps数据。在不做任何事情(甚至不重启应用程序)的情况下,它会在30分钟的休息后再次开始收集数据

有人对此有解释吗?它快把我逼疯了

忘了提到我用直接的requestLocationUpdates收集数据,但这里没有问题

编辑:按要求编写示例代码:

    private LocationListener ll = new LocationListener(){

        @Override
        public void onLocationChanged(Location loc) {
        }   

        @Override
        public void onProviderDisabled(String arg0) {

        }

        @Override
        public void onProviderEnabled(String arg0) {
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
        }   
};
这是相应的NMEA侦听器,因为我将处理原始GPS数据:

GpsStatus.NmeaListener nl = new GpsStatus.NmeaListener() {

    @Override
    public void onNmeaReceived(long timestamp, String nmea) {
        /*
         * Use patcher and matcher to find a proper GPRMC sentence and remove symbols at the end like \n, # etc.
         */
        m = p.matcher(nmea);
        Log.d(LocationLoggerApp.TAG, "Time for a break...");
        //Notify activity that app is ready for upload
        broadcastIntent.putExtra("LOG", "Got valid GPRMC sentence");
        sendBroadcast(broadcastIntent);
    }
};
这里我们有onStart函数中的一行,上面的内容是“加载的”:

问候,,
Martin

有没有可能得到一些代码示例?我的第一个建议是检查您是否正确设置了minTime和MindDistance参数

public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)

我已经在我的第一篇文章中添加了样本。但这绝对不是问题所在,因为它在30分钟休息前后都有效。如果minTime和MindDistance是错误的,那么我根本不应该获取数据。或者我在这里想的不对?我看不到任何明显的位置数据会导致30分钟打开/30分钟关闭。正如你所说,这种情况经常发生,我认为你应该进行一些测试。首先,我会尝试从Android Market下载GPS测试(免费版),并在运行日志的同时运行它。查看当两个都运行一小时时,GPS定位是否在后半小时丢失。如果是这样的话,你知道不是你的程序出了问题。
public void requestLocationUpdates (long minTime, float minDistance, Criteria criteria, PendingIntent intent)