㈠ android 怎樣穩定的獲取原生GPS數據
定位了就有經緯度,沒定位,則一直閃的;
一般是4個星的時候 會定位。
所以可以根據是否獲取有效的經緯度信息來判斷是否定位。
衛星的個數 sv_status也是可以通過API獲取的。LOCATION類
給一段咱的代碼,看看就知道了。
locationManager.addGpsStatusListener(statusListener);//偵聽GPS狀態
private GpsStatus.Listener statusListener = new GpsStatus.Listener()
{
public void onGpsStatusChanged(int event)
{
// TODO Auto-generated method stub
GpsStatus gpsStatus= locationManager.getGpsStatus(null);
Log.v(TAG,"GPS status listener ");
//Utils.DisplayToastShort(GPSService.this, "GPS status listener ");
switch(event)
{
case GpsStatus.GPS_EVENT_FIRST_FIX:{
//第一次定位時間UTC gps可用
//Log.v(TAG,"GPS is usable");
int i=gpsStatus.getTimeToFirstFix();
Utils.DisplayToastShort(GPSService.this, "GPS 第一次可用 "+i);
Utils.setGPSStatus(Utils.GPS_STATUS.START);
break;
}
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:{//周期的報告衛星狀態
//得到所有收到的衛星的信息,包括 衛星的高度角、方位角、信噪比、和偽隨機號(及衛星編號)
Iterable<GpsSatellite> allSatellites;
allSatellites = gpsStatus.getSatellites();
Iterator<GpsSatellite>iterator = allSatellites.iterator();
int numOfSatellites = 0;
int maxSatellites=gpsStatus.getMaxSatellites();
while(iterator.hasNext() && numOfSatellites<maxSatellites){
numOfSatellites++;
iterator.next();
}
Log.v(TAG,"GPS is **unusable** "+ numOfSatellites +" "+ maxSatellites);
if( numOfSatellites < 3){
// Utils.DisplayToastShort(GPSService.this, "***衛星少於3顆***");
Utils.setGPSStatus(Utils.GPS_STATUS.STOP);
} else if(numOfSatellites > 7){
Utils.setGPSStatus(Utils.GPS_STATUS.START);
}
break;
}
case GpsStatus.GPS_EVENT_STARTED:{
//Utils.DisplayToastShort(GPSService.this, "GPS start Event");
break;
}
case GpsStatus.GPS_EVENT_STOPPED:{
//Utils.DisplayToastShort(GPSService.this, "GPS **stop*** Event");
Utils.setGPSStatus(Utils.GPS_STATUS.STOP);
break;
}
default :
break;
}
}
};
㈡ android開發時間同步求教 如果監聽用戶設置系統時間。並強制系統時間與網路或者GPS時間同步。
其實,不管用戶如何設置,GPS一同步,就更新系統時間了。————前提是你的程序在該機中運行著、GPS開著並有信號
㈢ android gps多長時間記錄一次
不是的,可能他們調用的api不一樣,比如mytracks調用的是谷歌的api谷歌的api使用的是他自己的衛星或者是美國的衛星 行者可能是調用的網路的api而網路的數據可能是北斗星的數據, 以上都是可能,如有雷同純屬巧合,不過原理大概是一樣的, 不同的api返回不同的數據,很有可能因為標准不同, 就算相同的api,也有可能是因為硬體的原因,時間的原因等等因素造成數據不一致, 在中國使用網路的還是相對靠譜點.
㈣ 安卓 如何通過gps獲取當前gps時間
設置-〉日期和時間->使用GPS提供時間
一般要等1,2分鍾時間同步,你手機的時間就是GPS同步時間了
㈤ 現時android平台上實現gps獲取經緯度有什麼好方法
GPS獲取經緯度可以參考以下方法:
manifest中添加許可權:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
2. 實例化一個locationmanager:
LocationManger
locationmanager=(LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
3. 判斷GPS是否打開,未打開提示打開GPS:
if (!locationmanager.isProviderEnabled(LocationManager.GPS_PROVIDER)) {
Toast.makeText(this, "請開啟GPS導航...", Toast.LENGTH_SHORT).show();
return;
}
4. 監聽位置信息變化:
private LocationListener locationListener=new LocationListener() {
/**
* 位置信息變化時觸發
*/
public void onLocationChanged(Location location) {
updateView(location);
Log.i(TAG, "時間:"+location.getTime());
Log.i(TAG, "經度:"+location.getLongitude());
Log.i(TAG, "緯度:"+location.getLatitude());
Log.i(TAG, "海拔:"+location.getAltitude());
}
5. 載入監聽器:
locationmanager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 1,
locationListener);
㈥ android gps獲取的速度是什麼單位
定位後,得到經緯度,然後不斷的進行定位,有了每次定位的時間間隔,有了經緯度數,每一度相對應的距離,每每一秒,是多少米,相對的來算就行了.
㈦ Android GPS開發有個方法獲取當前時間,但是時間是double類型,能介紹一下這個doub
沒有啊,你用Location的getTime()方法返回的是long啊。這個long用的是UTC時間,你可以直接用Calendar來處理。詳情請參考API。
另外,關於海拔的問題,反正目前我測的海拔都不咋准,估計這東西不太好使吧。
㈧ Android開發,手機獲取 GPS位置信息,求助手機睡眠以後獲取GPS位置信息
一直搜索gps是因為無法定位。一般國產手機的gps晶元型號不行(用的晶元是集成在手機主晶元上的),搜星速度慢,無法定位。我用三星的手機不用開a-gps都能一分鍾搜到信號定位成功。但用中興的手機就不行,用a-gps經常是5分鍾以上才能定位。另外高速移動也影響定位計算。還有手機會保存上次定位的一些信息,這樣在下次開gps時定位更快,你在高速上開gps,換了新地方計算定位花的時間會更長。建議你改改手機里的設置,換一個a-gps的定位網路伺服器地址。
㈨ android gps是怎麼定位的
開發中對於地圖及地理位置的定位是我們經常要用地,地圖功能的使用使得我們應用功能更加完善,下面 www.androidkaifa.com 總結了一下網路中現有對於介紹android定位的幾種方式,希望對大家有幫助:
android 定位一般有四種方法,這四種方式分別是:GPS定位,WIFI定準,基站定位,AGPS定位,
(1) Android GPS:需要GPS硬體支持,直接和衛星交互來獲取當前經緯度,這種方式需要手機支持GPS模塊(現在大部分的智能機應該都有了)。通過GPS方式准確度是最高的,但是它的缺點也非常明顯:1,比較耗電;2,絕大部分用戶默認不開啟GPS模塊;3,從GPS模塊啟動到獲取第一次定位數據,可能需要比較長的時間;4,室內幾乎無法使用。這其中,缺點2,3都是比較致命的。需要指出的是,GPS走的是衛星通信的通道,在沒有網路連接的情況下也能用。要實用Adnroid平台的GPS設備,首先需要添加上許可權,所以需要添加如下許可權:
uses-permission android:name= android.permission.ACCESS_FINE_LOCATION /uses-permission
㈩ 如何從 android 的 GPS 時間轉換為本地時間在 c#中
UTC時間轉換為本地時間的方法,其他的時區轉換與此類似。
public static String utc2Local(String utcTime, String utcTimePatten,
String localTimePatten) {
SimpleDateFormat utcFormater = new SimpleDateFormat(utcTimePatten);
utcFormater.setTimeZone(TimeZone.getTimeZone("UTC"));
Date gpsUTCDate = null;
try {
gpsUTCDate = utcFormater.parse(utcTime);
} catch (ParseException e) {
e.printStackTrace();
}
SimpleDateFormat localFormater = new SimpleDateFormat(localTimePatten);
localFormater.setTimeZone(TimeZone.getDefault());
String localTime = localFormater.format(gpsUTCDate.getTime());
return localTime;
}