PDA

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



daseny
یک شنبه 08 اردیبهشت 1398, 15:24 عصر
در این آموزش می خواهیم با نحوه دریافت اطلاعات موقعیت مکانی در برنامه نویسی اندروید آشنا شویم. اطلاعاتی مانند نام شهر، نام کشور، زبان و... .
در برخی مواقع پیش می آید که ما قصد داریم بدانیم کاربران برنامه ما از کدام کشور یا شهر هستند. یا اینکه در نظر داریم برای افرادی که در شهر خاصی قرار دارند، یا زبان منحصر به فردی دارند، امکانات ویژه ای ارائه دهیم. برای دریافت اطلاعات موقعیت مکانی در برنامه نویسی اندروید، می توانیم از کتابخانه ipapi-retrofit استفاده کنیم.
برای استفاده از این کتابخانه ابتدا می بایست آن را به برنامه خودمان اضافه کنیم. برای اینکار نخست کد زیر را به بخش repositories اضافه می کنیم.

maven { url 'https://jitpack.io' }
سپس خط زیر را نیز به قسمت dependencies برنامه می افزائیم و سپس روی Sync Now کلیک می کنیم.

implementation 'com.github.seventhmoon:ipapi-retrofit:1.4.5'
پس از بیلد شدن کامل پروژه، کد زیر را در هرجای برنامه که قصد دریافت اطلاعات موقعیت مکانی کاربر را دارید، قرار دهید.

GeoIpService ipApiService = ServicesManager.getGeoIpService();
ipApiService.getGeoIp().enqueue(new Callback<GeoIpResponseModel>() {
@Override
public void onResponse(Call<GeoIpResponseModel> call, retrofit2.Response<GeoIpResponseModel> response) {
String country = response.body().getCountry();
String city = response.body().getCity();
String countryCode = response.body().getCountryCode();
double latitude = response.body().getLatitude();
double longtidue = response.body().getLongitude();
String region = response.body().getRegion();
String timezone = response.body().getTimezone();
String language=response.body().getLanguages();
}

@Override
public void onFailure(Call<GeoIpResponseModel> call, Throwable t) {
Toast.makeText(getApplicationContext(), t.toString(), Toast.LENGTH_SHORT).show();
}
});
متد ()onResponse زمانی اجرا می شود که نتیجه به درستی بازگردد و متد ()onFailure هنگامی فراخوانی می گردد که خطایی در روند عملیات رخ دهد و آن خطا را در قالب کلاس Throwable در دسترس ما قرار می دهد. همانطور که می بینید در تابع ()onResponse متغییر هایی مقداردهی شده اند که به ترتیب عبارت اند از:
country: نام کشور
city: نام شهر
countryCode: کد کشور
latitude: عرض جغرافیایی
longitude: طول جغرافیایی
region: منطقه
timezone: منطقه زمانی
language: زبان
به این ترتیب با روش دریافت اطلاعات موقعیت مکانی در برنامه نویسی اندروید آشنا شدیم.
برای مشاهده آموزش های بیشتر به سایت یادگیری آنلاین (http://www.daseny.ir) مراجعه کنید.
متبع: http://daseny.ir/programming/android/%D9%85%D9%88%D9%82%D8%B9%DB%8C%D8%AA-%D9%85%DA%A9%D8%A7%D9%86%DB%8C-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF/