android版本更新频率,Android GPS更新频率

我正在写圈计时应用程序,但遇到了GPS更新频率问题。在速度大于75km/h(21m/s)时,我的代码停止工作。我的问题是如何以更快的速度请求更新?我需要它以高达300km/h(83m/s)的速度工作,并希望应用程序每行驶几米就能获得更新,这意味着它需要每0.025秒@ 300km/h更新一次。下面是我的代码,我尝试了一个替代代码来获取时间戳,但得到了相同的结果,我相信这是一个GPS更新频率问题,而不是代码问题。我希望每隔300米每小时更新一次,以防电话通过切线上的接近半径。Android GPS更新频率

int prox = 30; // Proximity Switch To Finish Line = 30 meters

int speedGov = 0; // Speed In Kmh

public void OnProviderDisabled(string provider)

{

}

public void OnProviderEnabled(string provider)

{

}

public void OnStatusChanged(string provider, Availability status, Bundle extras)

{

}

protected override void OnResume()

{

this.InitializeLocationManager();

base.OnResume();

_locationManager.RequestLocationUpdates(_locationProvider, 0, 0, this);

}

void InitializeLocationManager()

{

_locationManager = (LocationManager)GetSystemService(LocationService);

Criteria criteriaForLocationService = new Criteria

{

Accuracy = Accuracy.Fine

};

IList acceptableLocationProviders = _locationManager.GetProviders(criteriaForLocationService, true);

if (acceptableLocationProviders.Any())

{

_locationProvider = acceptableLocationProviders.First();

}

else

{

_locationProvider = String.Empty;

}

}

public void OnLocationChanged(Location location)

{

_currentLocation = location;

if (_currentLocation == null)

{

}

else

{

d2fl = Convert.ToInt32(_currentLocation.DistanceTo(fl));

speedGov = Convert.ToInt32(_currentLocation.Speed * 3.6);

}

}

int A = 0; // 1st Distance to Finish Line

int B = 1000000; // 2nd Distance to Finish Line

// Get Time Stamp

while (true)

{

A = d2fl;

if (A > B && d2fl < prox && speedGov > 2) // Travelling away from Finish Line & Within 30m proximity to Finish Line & Going faster than 2km/h

{

// Time stamp for when phone first starts travelling away from Finish Line

string hours = DateTime.Now.ToString("HH");

string minutes = DateTime.Now.ToString("mm");

string seconds = DateTime.Now.ToString("ss");

string milliseconds = DateTime.Now.ToString("fff");

lapFinishTimeStamp = (Convert.ToDecimal(hours) * 3600) + (Convert.ToDecimal(minutes) * 60) + Convert.ToDecimal(seconds) + (Convert.ToDecimal(milliseconds)/1000);

A = 0;

B = 1000000;

break;

}

B = A;

}

// Alternate Get Time Stamp - worked the same as above "Get Time Stamp"

while (true)

{

int A = d2fl;

Thread.Sleep(5);

int B = d2fl;

if (A < B && d2fl < prox && speedGov > 2)

{

string hours = DateTime.Now.ToString("HH");

string minutes = DateTime.Now.ToString("mm");

string seconds = DateTime.Now.ToString("ss");

string milliseconds = DateTime.Now.ToString("fff");

lapFinishTimeStamp = (Convert.ToDecimal(hours) * 3600) + (Convert.ToDecimal(minutes) * 60) + Convert.ToDecimal(seconds) + (Convert.ToDecimal(milliseconds)/1000);

A = 0;

B = 0;

break;

}

A = 0;

B = 0;

}

读过这个论坛上一些其他的anwsers但几年的历史。这个应用程序将需要在Galaxy S4上工作。

另外我对GPS频率有点困惑,从我读过的GPS频率以相当高的速度工作(硬件约为1.6 GHz),但手机操作系统似乎将数据剔除为频率较低,这是故意的吗?

2015-07-21

Kringle

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值