ورود

View Full Version : کمک فوری برای برطرف کردن مشکل کد دریافت موقعیت با GPS



hamedg1366
یک شنبه 23 فروردین 1394, 22:29 عصر
با سلام و خسته نباشید به همه دوستان گرامی




با کمک کد زیر در تلاشم تا موقعیت فعلی رو بدست بیارم:


try{

LocationManager locationManager = (LocationManager)c.getSystemService(Context.LOCATI ON_SERVICE);
final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager. GPS_PROVIDER);

if (gpsEnabled) {
Toast.makeText(c, "getLocation Gps ____ HAS ON", Toast.LENGTH_LONG).show();

LocationListener ll = new gps();
locationManager.requestLocationUpdates(LocationMan ager.GPS_PROVIDER, 0, 0, ll);

Toast.makeText(c, "gps.lat="+gps.lat, Toast.LENGTH_SHORT).show();
Toast.makeText(c, "gps.lon="+gps.lon, Toast.LENGTH_LONG).show();

}
}
catch(Exception e)
{


}*/


Gps.class

public class gps extends AsyncTask<Void, Void, Void> implements LocationListener{

public static double lat,lon=0;
@Override
public void onLocationChanged(Location location) {

lat=location.getLatitude();//arze jografiyae
lon=location.getLongitude();//arze jografiyae
}

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

}

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

}

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

}

@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
return null;
}

}




مشکلم اینجاست که تا بیام دستگاه Gps رو روشن کنم و اون بیاد موقعیت فعلی رو بدست بیاره چند ثانیه ای طول میکشه و توی این چند ثانیه مقدار 0.0 برام برگشت داده میشه ؛ کد ها درست هستن فقط نمیدونم چطور باید تا بدست آوردن موقعیت زمان رو از بین ببرم ، از تایمر استفاده کردم متاسفانه جواب نداد و خطا داد.

مد نظر داشته باشید که تمامی این کارها را درون سرویس انجام میدم نه اکتیویتی دستگاه.


وضعیتم اورژانسی هس لطفا کمکم کنید

keyhan.taktaz
یک شنبه 23 فروردین 1394, 22:31 عصر
این کد دپریکت شده
از onLocationChanged استفاده باید بکنی
بگردی هست نمومنش تو
stackoverflow

hamedg1366
یک شنبه 23 فروردین 1394, 22:55 عصر
این کد دپریکت شده
از onLocationChanged استفاده باید بکنی
بگردی هست نمومنش تو
stackoverflow

"دپریکت" دوست عزیز این کلمه معنیش چی میشه !؟

دقت بفرمائید در نمونه کد بعدی که مشکلم هم اونجاست از "onLocationChanged" استفاده میکنم برای بدست آوردن موقعیت ،


مشکل بنده اون تایمی هس که تا بدست آوردن موقعیت سپری میشه و برنامه کدهارو دیباگ کرده و 0.0 خروجی میده.
نمیدونم چطور به برنامه بفهمونم تا وقتی که مقادیر (این دوتا) صفر بودن صبر کنه


lat=location.getLatitude();
lon=location.getLongitude();






از do while هم استفاده کردم اصلا انگار نه انگار !

atpf67
دوشنبه 24 فروردین 1394, 00:31 صبح
سلام بزرگوار

فکر می کنم اگر از Handler کمک بگیرید مشکلتون حل بشه:

new Handler().postDelayed(new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub

}
}, 500);

سربلند و پیروز باشید همیشه- یا علی