我正在尝试开发很少的应用程序,该应用程序在启动时会在烤面包或其他内容中显示当前位置的名称。我编写的代码仅在我从Eclipse的Emulator Control View中手动发送坐标的情况下,才会在显示屏上显示Toast。
我的问题:是否有一种方法可以在启动时强制发送此坐标,因为我希望在加载应用程序时使用Toast?我该怎么办?谢谢。
这是代码:
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
}
}
最佳答案
由于仿真器没有GPS接收器,因此仅当您通过DDMS提供一些新坐标时,才会调用方法onLocationChanged
。
在真实电话上,它不会立即显示Toast;它将等待,直到找到GPS卫星并接收GPS定位,然后显示Toast消息。
关于java - 无法在应用程序启动时获取位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7132766/