Android 2.2 app:30分钟后没有gps信号。 30分钟后无所事事再次起作用

时间:2011-02-24 15:24:21

标签: android gps

我正在研究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函数的行,其中上面的东西被“加载”:

/*
     * Request location updates as workaround because the function addNmeaListner DOES NOT enable GPS on the phone!
     */
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, interval*1000, 0, ll);
    lm.addNmeaListener(nl);

此致 马丁

1 个答案:

答案 0 :(得分:0)

是否有任何代码样本的机会?我的第一个建议是检查你是否正确设置了minTime和minDistance参数。

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