استفاده از GPS در برنامه‌های اندرویدی

موقعیت‌تان را در موبایل خود دنبال کنید

قابلیت مکان‌نمایی یا همان GPS مدت‌هاست جزئی از دستگاه‌های تلفن همراه هوشمند شده‌ و تعداد زیادی برنامه بر همین مبنا توسعه داده‌ شده‌است. بیشتر برنامه‌‌نویسان موبایل با استفاده از ویژگی و ایده‌های نوین توانسته‌اند برنامه‌های مفیدی برای تلفن‌های هوشمند توسعه دهند. در این شماره قصد داریم در مورد این قابلیت و نحوه استفاده از آن بیشتر بحث کنیم.
کد خبر: ۴۵۱۱۳۹

در ابتدا شما به یک کلید اختصاصی که به آن API گفته می‌شود نیاز دارید. شما با استفاده از این کلید که انحصارا مختص شماست می‌توانید نقشه گوگل را در دستگاه خود اجرا کنید. برای گرفتن این کلید به نشانی زیر بروید:

http://code.google.com/android/maps-api-signup.html

بعد از این به شما یک کد نمونه می‌دهد.

این کد را باید در فایل Layout که برای یک Activity تعریف کرده‌اید کپی کنید تا نقشه در آن Activity در دسترس باشد.

برای این منظور ابتدا باید یک Activity تعریف کنیم. یک کلاس به نام MyGPSActivity تعریف می‌کنیم که از کلاس سطح بالایی به نام MapActivity به ارث رسیده ‌است.

بسیار خب، برای این کلاس یک فایل Layout تعریف می‌کنیم مثلا gps_map.xml سپس کد داده شده را در آن کپی می‌کنیم. کدهای زیر را در کلاس MapActivity می‌نویسیم.

gMapView = (MapView) findViewById(R.id.myGMap);

GeoPoint p = new GeoPoint((int) (lat * 1000000), (int) (long * 1000000);

gMapView.setSatellite(true);

//get MapController that helps to set/get location, zoom etc.

mc = gMapView.getController();

mc.setCenter(p);

mc.setZoom(14);

البته قبل از این کدها باید کدهای مربوط به مقداردهی اولیه Activity‌ نوشته شود که ثابت است.

کد بالا ابتدا از طریق findViewById به نقشه‌ای که گوگل کد آن را به ما داده است، دسترسی پیدا می‌کند، سپس با استفاده از lat و long که یک عدد اعشاری است، یک GeoPoint می‌سازیم که به نقشه می‌گوییم این نقطه را روی نقشه مشخص کن و حالت نقشه را روی Satelite تنظیم می‌کنیم.

سپس با استفاده از getController نقطه خود را روی نقشه مشخص می‌کنیم و بزرگنمایی آن را برابر ۱۴ می‌گذاریم. تا اینجا کار ما تمام شده‌است، اما وقتی شما برنامه را اجرا می‌کنید با خطا روبه‌رو می‌شوید. همه چیز درست است، اما چرا خطا می‌دهد؟ اگر از محیط Eclipse به بخش DDMS‌ سپس پنجره Log Cat‌ مراجعه کنید، می‌بینید برنامه شما حق استفاده از GPS و دسترسی به موقعیت جاری را ندارد. راه‌حل چیست؟

برای این منظور سطح دسترسی برنامه به سرویس‌ها و بخش امنیتی سیستم باید در فایل AndroidManifest.xml قید شود . این فایل را باز کرده سپس به بخش Use Permission‌ بروید و 3 حق دسترسی زیر را به آن اضافه کنید:

android.permission.INTERNET

android.permission.ACCESS_COARSE_LOCATION

android.permission.ACCESS_FINE_LOCATION

در این مرحله دوباره برنامه را اجرا کنید . دقت داشته باشید برای استفاده از نقشه به اینترنت نیاز دارید.

تا حالا ما از طریق یک نقطه ثابت به نقشه دسترسی پیدا کردیم، اما برای این که بتوانیم موقعیت خودمان را روی نقشه به دست بیاوریم، کافی است کلاس MyGPSActivityکه قبل‌تر تعریف کردیم، رابط LocationListener را پیاده کند . برای این کار به شیوه زیر عمل می‌کنیم:

class MyGPSActivity extends MapActivity implements LocationListener

سپـــــس در تــــــابع onCreate یــک LocationManager تعریف می‌کنیم و با مقداردهی آن را به LocationListener‌ معرفی می‌کنیم.

LocationManager lm =

(LocationManager)getSystemService(Context.LOCATION_SERVICE);

lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);

به این ترتیب شما براحتی می‌توانید به موقعیت خود درنقشه دسترسی داشته باشید. در این مقاله توانستیم یک برنامه بنویسیم که موقعیت جاری ما را هر زمان که تغییر کرد روی نقشه مشخص کند. برای دانلود کد این برنامه می‌توانید به لینک زیر بروید:

http://androidcompetencycenter.com/wp-content/uploads/GPSApp.zip

منبع :

http://www.androidcompetencycenter.com/?s=GPS

امیربهاالدین سبط‌الشیخ

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰
فرزند زمانه خود باش

گفت‌وگوی «جام‌جم» با میثم عبدی، کارگردان نمایش رومئو و ژولیت و چند کاراکتر دیگر

فرزند زمانه خود باش

نیازمندی ها