Я пишу приложение для Android, чтобы узнать местоположение моего устройства. Оно всегда показывает статус GPS как ВРЕМЕННО, НЕ ДОСТУПНО, его даже не вызывает метод Location Changed, несмотря на то, что я меняю местоположение моего мобильного телефона, не могли бы вы заглянуть в проблема с кодом ниже
ls= (ArrayList<String>)lm.getProviders(false);
Log.e(""," SIZE "+ls.size());
sb=new StringBuilder();
for(int i=0;i<ls.size();i++)
{Log.e("","Data : "+ls.get(i));
lp=lm.getProvider(ls.get(i));
sb.append("\nProvider Name : "+lp.getName());
sb.append("\nPower Requirement :"+lp.getPowerRequirement());
sb.append("\nAccuracy : "+lp.getAccuracy()+"\n\n");
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1, 1, this);
Location location=lm.getLastKnownLocation(ls.get(i));
}
strt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextView tv=(TextView)findViewById(R.id.TextView01);
tv.setText("StarteD :"+sb);
}
});
stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextView tv=(TextView)findViewById(R.id.TextView01);
tv.setText("STOPPED ys :"+res);
Location location=lm.getLastKnownLocation(ls.get(1));
if(location==null)
Log.e("","location object null");
try{
tv.append("\nLogitude: "+location.getLongitude());
tv.append("\nLattitude: "+location.getLatitude());
tv.append("\nTime:"+location.getTime());
tv.append("\nSpeed: "+location.getSpeed());
tv.append("\n Provider:"+location.getProvider());
}catch(Exception e){}
}
});
}
@Override
public void onLocationChanged(Location location) {
Log.e("","LocationChandgeD... ");
}
@Override
public void onProviderDisabled(String provider) {
Log.e("",provider+" DIsabled... ");
}
@Override
public void onProviderEnabled(String provider) {
Log.e("",provider+" Enabled... ");
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
switch (status) {
case LocationProvider.OUT_OF_SERVICE:
Toast.makeText(this, "Status Changed: Out of Service",
Toast.LENGTH_SHORT).show();
break;
case LocationProvider.TEMPORARILY_UNAVAILABLE:
Toast.makeText(this, "Status Changed: Temporarily Unavailable",
Toast.LENGTH_SHORT).show();
break;
case LocationProvider.AVAILABLE:
Log.e("", "Status Changed: Available");
Toast.makeText(this, "Status Changed: Available",
Toast.LENGTH_SHORT).show();
break;
}
}