我有问题。
我想使用Android SDK开发简单的LBS应用程序,这可以确定我当前的位置。我已经制作了一个,并在eclipse中使用模拟器进行了尝试。
据我所知,我必须使用DDMS将纬度和经度值发送给模拟器,是的,它可以正常工作。 现在,我想将它安装在我的Android设备上,以确定它是否可以在我的手机中使用。但是,它无法获得我的位置。
我想知道它有什么问题。互联网或我的手机提供商是否确定了我的位置(以换取在日食中使用DDMS)?或者我需要添加一些代码行以使其工作或其他配置?
这是我的代码:
public class PilihFitur extends Activity implements OnClickListener {
private double mylat = 0.0;
private double mylon = 0.0;
private LocationManager locationManager = null;
private Location location = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pilihfitur);
View goToMapsButton = findViewById(R.id.toMapsButton);
goToMapsButton.setOnClickListener(this);
View goToOrderButton = findViewById(R.id.toOrderButton);
goToOrderButton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.toMapsButton:
onChangeLocation();
break;
default:
break;
}
}
private void onChangeLocation(){
locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 100, 10, new myLocationListener());
location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if(location != null){
mylat = location.getLatitude();
mylon = location.getLongitude();
Toast.makeText(PilihFitur.this, "Lokasi Anda: \nLat: "+mylat+" Lon: "+mylon, Toast.LENGTH_LONG).show();
}
else
Toast.makeText(PilihFitur.this, "Lokasi Tidak Ditemukan", Toast.LENGTH_SHORT).show();
}
//Location Listener
private class myLocationListener implements LocationListener{
@Override
public void onLocationChanged(Location arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderDisabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String arg0) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
// TODO Auto-generated method stub
}
}
}
它适用于模拟器,我想知道如何使它在我的手机上工作。谢谢。
答案 0 :(得分:1)
您在以下位置监听器方法中检查位置。尝试将代码添加到此方法,并检查是否获得位置更新。有时,最后知道的位置可以为空。
@Override
public void onLocationChanged(Location location) {
mylat = location.getLatitude();
mylon = location.getLongitude();
Toast.makeText(PilihFitur.this, "Lokasi Anda: \nLat: "+mylat+" Lon: "+mylon, Toast.LENGTH_LONG).show();
}