2012-01-02 67 views
0

我正在尝试查找纬度和经度的代码,但需要大量时间才能给出坐标,或者根本没有给出坐标,可能是什么问题。我正在三星Galaxy选项卡上尝试我的代码。android gps设备获取纬度和经度所用的时间

LocationManager mlocManager; 
double lat,lng; 
LocationListener mlocListener = new MyLocationListener(); 

我称之为的onCreate下面的代码()方法

mlocManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, mlocListener); 

监听MyLocationListener类代码如下

public class MyLocationListener implements LocationListener 

     { 




     @Override 
     public void onLocationChanged(Location loc){ 

     loc.getLatitude(); 

     loc.getLongitude(); 

     String Text = "My current location is: " + "Latitude = " + loc.getLatitude() + "Longitude = " + loc.getLongitude(); 
     String latLongString = ""; 
     if (loc != null) { 
      lat = loc.getLatitude(); 
      lng = loc.getLongitude(); 
      latLongString = "Lat:" + lat + "\nLong:" + lng; 
      TextView myLocationText = (TextView)findViewById(R.id.FindUsTextView); 
      myLocationText.setText("Your Current Position is:\n" + latLongString); 
      System.out.println(latLongString); 

     } 
     /* findUsProgressbarField.setVisibility(View.INVISIBLE);*/ 
     Toast.makeText(FindUs.this, Text, Toast.LENGTH_SHORT).show(); 
     mlocManager.removeUpdates(mlocListener); 

     } 

     @Override 

     public void onProviderDisabled(String provider){ 

     Toast.makeText(getApplicationContext(),"Gps Disabled, Please Enable the GPS", Toast.LENGTH_SHORT).show(); 

     } 

     @Override 

     public void onProviderEnabled(String provider){ 

     Toast.makeText(getApplicationContext(),"Gps Enabled",Toast.LENGTH_SHORT).show(); 

     } 

     @Override 

     public void onStatusChanged(String provider, int status, Bundle extras){ 

     } 



     } 
     @Override 
     protected void onDestroy() { 
     super.onDestroy(); 
     if (mlocManager != null) { 
      mlocManager.removeUpdates(mlocListener); 
      mlocManager = null; 
     } 
     } 

可能是问题,任何指针或有我不考虑什么一些观点。 期待您的回复。 谢谢。

+2

听起来像是“按设计”工作。公司并不总是可用。第一次获得他们是昂贵的(及时)。 – 2012-01-02 13:05:33

回答

1

如果你像大多数人一样在里面进行测试的时候正在开发中,这是相当标准的。 GPS喜欢看天空。试着坐在一个很好的大窗户旁边。它帮助到我。

1

如果Galaxy Tab的具有A-GPS(辅助GPS)capabilty,也就是说,如果有amonst设备的“位置和Secuirity”“使用无线网络”的设置选项,然后使这将有助于获得一个锁更快,即使你没有在你的代码中使用NETWORK_PROVIDER选项。

这是因为星历和年历数据告诉设备在当时(近似)位置应该查看哪些卫星应通过电话网络传输。

1

我也有同样的问题,并开始认为GPS或程序出了问题。然后我在办公室旁边试了一下,它的工作很完美。尝试在一个开放的空间或靠近窗口使用您的手机:)

欢呼声。

0

获取GPS定位可能需要相当长的一段时间,这取决于许多变量,如GPS卫星的位置以及您的GPS单元是否对卫星有清晰的视野。由于GPS信号非常弱,常常被建筑物堵塞。因此,这也是您的用户也会遇到的问题,因此,如果您的应用没有得到修复或缓慢修复,请务必使您的应用也可用。

虽然开发者可能会提供设备虚假的位置,但您需要在设备的开发者选项中启用“允许虚假地点”。这将加快发展。