2011-08-20 208 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

我編輯了答案以迴應您的評論。 –