2011-08-20 265 views
0

我正在尝试开发一个在启动时显示当前位置在烤面包或其他东西中的名称的小应用程序。我写的代码将在显示屏上显示Toast,只有位置是我从Eclipse的Emulator Control View手动发送坐标。在应用程序启动时无法获取位置

我的问题:有没有办法强制这种发送坐标在启动时,因为我想要的应用程序加载时吐司?我该怎么做?谢谢。

下面是代码:

public class HomeActivity extends Activity implements LocationListener { 

    private LocationManager locationManager; 
    private String welcomeMsg; 
    private String crtLocationName; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     initLocationManager(); 
    } 

    private void initLocationManager(){ 
     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 5000, this); 
    } 


    */ 
    @Override 
    public void onLocationChanged(Location location) { 
     if (location != null) { 
      try { 
       crtLocationName = getLocationName(location); 

       Toast.makeText(getApplicationContext(), crtLocationName, Toast.LENGTH_LONG).show(); 
      } catch (IOException e) { 
       welcomeMsg = "Location cannot be determined"; 
       crtLocationName = ""; 
      } 

//   locationManager.removeUpdates(this); 
     } 
    } 


    @Override 
    public void onProviderDisabled(String provider) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     // TODO Auto-generated method stub 

    } 

} 

回答

2

由于模拟器没有一个GPS接收器,该方法onLocationChanged将只有当你通过DDMS给予一定的新坐标调用。

在真实手机上,它不会立即显示吐司;它会在找到GPS卫星并接收GPS定位之前等待,然后它会显示Toast消息。

+0

然后在电话上,它将启动Toast消息? – DaJackal

+0

我编辑了答案以回应您的评论。 –

相关问题