ورود

View Full Version : آموزش استفاده از نقشه گوگل نسخه 2 در اندروید



sds1920
سه شنبه 16 اردیبهشت 1393, 22:42 عصر
سلام به همه دوستان.
بعد از روزها پیگیری و خوردن قرص اعصاب و نبودن منابع کافی فارسی،با پشت کارم و به لطف زبان دست و پا شکسته خودم بالاخره تونستم یک برنامه برای نمایش نقشه های گوگل بنویسم:تشویق:.به دلیل اینکه خودم تقریبا نابود شدم سر این مسئله :گریه: تصمیم گرفتم این مطلب رو به اشتراک بذارم و از اول این کار رو براتون بنویسم تا لحظه ی آخر که نقشه رو می بینید.امیدوارم که این تاپیک مشکل شما رو حل کنه:چشمک:.

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

تمام کدهای نوشته شده در این آموزش با برنامه های زیر است:
Android SDK Manager 22.6.3

Eclipse Juno 4.2.1

ADT Plugin 22.6.3


موارد مورد نیاز برای نقشه گوگل:
1)Google Play Services در Android SDK Manager
2)دریافت API Key برای برنامه جهت استفاده از نقشه گوگل
3)یک گوشی که USB Debuging آن فعال شده باشد تا بتوان برنامه خود را بر روی آن تست کرد
4)Google Play Service بر روی گوشی

مراحل انجام کار

1) نصب Google Play Services بر روی Android SDK
برای نصب Google Play Services ابتدا SDK Manager خود را باز کنید.پس از بازکردن SDK لیستی از API ها و ابزار ها و.... نصب شده نشان داده می شود.در این لیست حتی مواردی که نصب نشده است را نیز می توانید مشاهده کنید.عکس زیر موارد فوق را نشان می دهد.

توضیح:چنانچه پس از باز کردن SDK برنامه های نصب نشده را مشاهده نکردید و با خطای ......Failed to fetch URL http://dl-ssl.google.com (http://dl-ssl.google.com) روبرو شدید نگران نباشید.دلیل این امر این است که شرکت گوگل کشور ایران را تحریم کرده است.پس می توانید به روش خودتان این مشکل تحریم رو برطرف کنید.



118719


همانطور که در شکل نیز نشان داده شده است به قسمت Extras رفته و تیک گزینه Google Play Services را برنید.سپس Install xx Packages... را بزنید و تیک Accept License رو بزنید و نهایتا Install رو کیلیک کنید.مدتی طول می کشه تا نصب بشه.پس صبور باشید.


118720



Google Play Services پس از نصب در آدرس زیر قرار دارد :

SDK-Directory\extras\google\google_play_services\libpr oject\google-play-services_lib

بعد از نصب کامل Google Play Services بر روی SDK Manager حالا باید Google Play Services رو به Eclipse منتقل کنیم تا بتونیم به عنوان کتابخانه در برنامه های خودمون مورد استفاده قرار بدیم.
برای اینکار Eclipse رو باز کرده و مطابق زیر اقدام کنید:

File > Impoert... >Android > Existing Android Code Into Workspace


118722


...Click Browse




118725

118726



پس از این کار باید google-play-services_lib در لیست پروژه های شما در قسمت Package Explorer نشان داده شود.

مرحله اول تمام شد و منم خسته شدم.انشا... در پست های بعدی ادامه مطلب رو قراد می دم.

sds1920
جمعه 19 اردیبهشت 1393, 22:02 عصر
مرحله دوم:دریافت API Key برای برنامه

اما API Key چیست؟
API Key یک شناسه منحصر به فرد برای برنامه شما در گوگل است که به منظور اعتبارسنجی برنامه و همچنین گزارش های آماری گوگل مورد استفاده قرار می گیرد.در واقع برنامه شما با استفاده از همین شناسه می تواند از نقشه های موجود در گوگل استفاده کند و گوگل نیز گزارش های مورد نیاز مثل میزان ترافیک یا تعداد درخواست های روزانه را با استفاده از همین شناسه ایجاد می کند.

نحوه دریافت API Key در وهله اول پیچیده به نظر می رسد ولی در عمل ساده است.
به طور خلاصه مراحل کار به این صورت خواهد بود:
1)دریافت اثر انگشت یا Fingerprint برنامه
2)ایجاد یک پروژه جدید در Google APIs Console
3)فعال کردن سرویس Google Maps Android API v2
4)دریافت API Key با استفاده از اثرانگشت برنامه


گام اول :دریافت Fingerprint یا اثر انگشت
Fingerprint چیست؟
Fingerprint به عنوان مجوز و شناسه ایست که برنامه های اندرویدی به وسیله آن قابلیت اجرا بر روی یک دستگاه یا شبیه ساز اندرویدی را دارند. eclipse برای تمام برنامه هایی که با آن ساخته می شوند به طور پیش فرض از یک اثر انگشت واحد استفاده می کند.اما زمانی که برنامه شما تکمیل شده و آن را publish کنید برنامه یک اثر انگشت جدید و منحصر به فرد برای خودش خواهد داشت.خلاصه اینکه تا زمانی که در حال توسعه نرم افزار هستید از یک اثر انگشت که مربوط به eclipse است استفاده می کنید و زمانی که برنامه تکمیل شد از یک اثر انگشت دیگر.پس در نتیجه همینجا می توان نتیجه گرفت که API Key در زمان ساخت و در زمان Publish متفاوت هستند.
در کل این آموزش ما تنها از اثر انگشت پیش فرض eclipse استفاده می کنیم و تنها با یک API Key کار خواهیم کرد.اما زمانی که آموزش تمام شد و نحوه کار با نقشه گوگل را یاد گرفتید نحوه دریافت اثر انگشت نهایی و API Key نهایی را نیز آموزش خواهم داد.


Fingerprint پیش فرض برای برنامه هادر eclipse در فایل debug.keystore در مسیر زیر قرار دارد:
Windosw 7
C:\Users\your_username\.android

Windows XP
C:\Documents and Settings\your_username\Local Settings\Application Data\.android


اثر انگشت موجود در فایل debug.keystore با استفاده از الگوریتم MD5 رمزنگاری شده است.ولی جای نگرانی نیست.JDK یا Java Development Kits نصب شده بر روی سیستم شما حاوی برنامه keytool.exe است که بازگشایی این اثرانگشت را راحت کرده است.برای استفاده از این برنامه به cmd ویندوز را باز کرده و به مسیری که JDK در آن نصب شده است بروید.JDK در سیستم من در آدرس C:\Program Files (x86)\Java نصب شده است و برنامه keytool.exe در آدرس C:\Program Files (x86)\Java\jdk1.7.0_45\bin قرار دارد.پس cmd را باز کرده و دستور زیر را وارد کنید تا به مکانی که keytool.exe در آن قرار دارد بروید.

Windows 7
cd C:\Program Files (x86)\Java\jdk1.7.0_45\bin

Windows XP
cd C:\Program Files\Java\jdk1.7.0_45\bin


توضیح: عبارت jdk1.7.0_45 در آدرس بالا ممکن است در سیستم شما متفاوت باشد و بستگی به نسخه jdk نصب شده بر روی سیستم دارد.

پس رفتن به آدرس بالا کافی است برای دریافت اثر انگشت پیش فرض برنامه ها دستور زیر را تایپ کنید:


keytool.exe -list -alias androiddebugkey -keystore debug_keystore_file_path -storepass android -keypass android -v


توضیح:تمامی دستور بالا را عینا تایپ کنید فقط موردی که تغییر میکند debug_keystore_file_path که همان آدرس فایل debug.keystore هست.برای مثال در سیستم من دستور بالا به صورت زیر خواهد بود :


keytool.exe -list -alias androiddebugkey -keystore C:\Users\Administrator\.android\debug.keystore -storepass android -keypass android -v



پس از تایپ دستور بالا باید چیزی شبیه به عکس زیر را ببینید:


118823


همانطور که در شکل نیز مشخص شده است برای دریافت API Key به کدی که در مقابل SHA1 نوشته شده است نیاز خواهیم داشت.پس در مراحل بعدی به آن نیاز خواهیم داشت.


گام دوم:ایجاد یک پروژه جدید در Google APIs Console
پس از دریافت اثر انگشت برنامه باید درون کنسول گوگل یه پروژه ایجاد کنید.برای اینکار نیاز به یک Gmail خواهید داشت.
توضیح:مطابق بخش قبلی شرکت گوگل کشور ایران را در این زمینه نیز تحریم کرده است.پس چگونگی گذشتن از این تحریم با خود شماست.

برای ساختن پروژه جدید به آدرس زیر بروید:



https://code.google.com/apis/console/

پس از باز شدن صفحه از شما آدرس gmail شما را می خواهد.پس مشخصات خود را وارد کرده و sign in کنید.
پس از باز کردن کنسول خود صفحه ی شبیه عکس زیر یا شبیه به آن روبرو خواهید شد.بر روی CREATE PROJECT کلیک کنید و در صفحه ای که باز می شود در قسمت PROJECT NAME یک نام برای پروژه های خود انتخاب کنید.این نام دلخواه است ولی سعی کنید مرتبط با پروژه اصلی باشد.من یک پروژه با نام My Project ساختم.


118824



گام سوم:فعال کردن سرویس Google Maps Android API v2
پس از ساختن پروژه در کنسول گوگل حالا وقت آن رسیده است تا سرویس Google Maps Android API v2 را فعال کنیم.برای اینکار ابتدا از لیست پروژه ها پروژه ای را ایجاد کرده اید را انتخاب کنید و قسمت APIs & auth و سپس APIs به قسمت سرویس ها و API های گوگل بروید.در لیست که نشان داده می شود گزینه ی Google Maps Android API v2 را پیدا کرده و برروی کلید OFF کلیک کنید تا سرویس مورد نظر فعال شود.چنانچه مراحل فوق را به درستی سپری کنید باید پیزی شبیه عکس زیر داشته باشید:


118825


گام چهارم:دریافت API Key با استفاده از اثرانگشت برنامه
مرحله آخر دریافت API Key می باشد.از همان قسمت APIs & auth به قسمت Credentials بروید.سپس برروی CREATE NEW KEY کلیک کنید و سپس گزینه Android Key را انتخاب کنید.صفحه ای مطابق زیر باز میشود.


118821


در کادر این صفحه باید اطلاعات را به صورت زیر وارد کنید

Fingerprint SHA1;Package name

برای مثال:

F8:C5:F6:3C:20:C8:70:C6:E5:D5:9C:9A:53:5B:1D:F9:75 :33:0E:67;com.example


پس از وارد کردن اطلاعات برروی CREATE کلیک کنید تا API Key برای شما ساخته شود.


119126




کار ما در این مرحله به اتمام رسید.پس از بدست آوردن API Key باید آن را در Manifest برنامه وراد کنید.ثبت این اطلاعات در برنامه و همچنین نحوه گرفتن اثر انگشت برنامه پس از انتشار را به پست های بعدی موکول خواهم کرد.نگران API Key نباشید.هر موقع که به کنسول گوگل خود بروید می توانید آن را بددست آورید.

saeed_g21
جمعه 19 اردیبهشت 1393, 22:15 عصر
ممنون از آموزش خوبتان

فقط یک مسئله ای که هست اغلب دوستان با Fragment مشکل دارن در این مورد هم توضیحی بدین عالی میشه

mfaridi
جمعه 19 اردیبهشت 1393, 23:03 عصر
هر کی میاد اینجا سر میزنه باید تشکر کنه واقعا اموزش خوبی بود دستت درد نکنه

sara_traveler
شنبه 20 اردیبهشت 1393, 11:06 صبح
ممنون از اموزش خوبتون
میشه بقیشم توضیح بدید

sds1920
شنبه 27 اردیبهشت 1393, 08:17 صبح
ممنون از آموزش خوبتان

فقط یک مسئله ای که هست اغلب دوستان با Fragment مشکل دارن در این مورد هم توضیحی بدین عالی میشه

دوست عزیز در ادامه به قسمت های کد نویسی هم خواهیم رسید.با تشکر از شما

sds1920
شنبه 27 اردیبهشت 1393, 08:39 صبح
هر کی میاد اینجا سر میزنه باید تشکر کنه واقعا اموزش خوبی بود دستت درد نکنه


ممنون از اموزش خوبتون
میشه بقیشم توضیح بدید

با تشکر از لطف همه دوستان.به علت اینکه یک مسافرت پیش اومد کمی ارائه مطالب بعدی به تعویق افتاد.به زودی مراحل بعد رو هم قرار می دم.

antimat
شنبه 17 خرداد 1393, 18:52 عصر
میشه بقیشو بذارید؟؟؟؟؟؟؟

antimat
یک شنبه 18 خرداد 1393, 18:58 عصر
مشکل حل شد!

peach2
پنج شنبه 16 مرداد 1393, 11:12 صبح
لطفا بقیشو بزارید..!

m11111
چهارشنبه 05 آذر 1393, 14:58 عصر
سلام ممنون از پستتون
من مشکل دارم!!!!:گریه::گریه:
این کل فایل منیفست منه:
__________________________________________________ _______
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="doctorapp.ir.ngmlmap"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />


<permission android:name="doctorapp.ir.ngmlmap.permission.MAPS_RECIEVE" android:protectionLevel="signature"/>
<uses-permission android:name="doctorapp.ir.ngmlmap.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_G SERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


<activity
android:name="doctorapp.ir.ngmlmap.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AlzaSyC_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
/>

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

</application>


</manifest>
__________________________________________________ ___________________----
یه نکته : اگه این خط و حذف کنم وقتی برنامه به setcontentview میرسه اررور میده!!!

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
__________________________________________________ __________
وقتی این و میزاری برنامه اجرا میشه اما یه صفجه میاد که دمکه های زوم هستش و زیرشم اسم google هست اما هیچی دیگه نشون نمیده!!!
مشکل کجاست؟

روی گوشی خودمم که امتحان کردم همین شد!!!میشه بگید داستان چیه؟
با google APIS19 هم کار کردم

spring3
جمعه 07 آذر 1393, 11:52 صبح
دوست عزیز من هم این مشکلو داشتم که دکمه ها و ارم گوگل رو داشت اما چیزی نشون نمیداد
پست هم گذاشتم اما متاسفانه کسی ج نداد
اما خودم حل کردم
نمیدونم بقیه کدتو چه طور نوشتی ولی من google play service رو روی گوشیم توسط نرم افزار بازار ارتقا دادم
اون وقت نقشه ها رو نشون داد

shoku22
سه شنبه 25 آذر 1393, 08:39 صبح
همه این مراحل رو انجام دام ولی ارور میده وقتی
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
به مانیفست برنامه اضافه میکنم بازم ارور میده

Ebrahim_Rayaneh
جمعه 28 آذر 1393, 14:07 عصر
موارد مورد نیاز برای نقشه گوگل:
1)Google Play Services در Android SDK Manager
2)دریافت API Key برای برنامه جهت استفاده از نقشه گوگل
3)یک گوشی که USB Debuging آن فعال شده باشد تا بتوان برنامه خود را بر روی آن تست کرد
4)Google Play Service بر روی گوشی



سلام دوست عزیز

امکانش هست که قسمت اول یعنی Google Play Services بشه خارج از Android SDK Manager دانلود کرد؟چون واسه من تو SDK manager در قسمت extrass ، Google Play Services نمیاد!!

اگه امکانش باشه Google Play Services هم واسه اندروید 2.2 و هم 4.2 به صورت جداگانه لینک دانلودشو بزارید! :متفکر:

ممنون میشم ازتون. :لبخندساده:

Ebrahim_Rayaneh
جمعه 28 آذر 1393, 14:10 عصر
موارد مورد نیاز برای نقشه گوگل:
1)Google Play Services در Android SDK Manager
2)دریافت API Key برای برنامه جهت استفاده از نقشه گوگل
3)یک گوشی که USB Debuging آن فعال شده باشد تا بتوان برنامه خود را بر روی آن تست کرد
4)Google Play Service بر روی گوشی



سلام دوست عزیز

امکانش هست که قسمت اول یعنی Google Play Services بشه خارج از Android SDK Manager دانلود کرد؟چون واسه من تو SDK manager در قسمت extrass ، Google Play Services نمیاد!!

اگه امکانش باشه Google Play Services هم واسه اندروید 2.2 و هم 4.2 به صورت جداگانه لینک دانلودشو بزارید! :متفکر:

ممنون میشم ازتون. :لبخندساده:

sds1920
یک شنبه 23 فروردین 1394, 17:44 عصر
با عرض پوزش از محضرهمه دوستان به خاطر غیبت طولانی مدتم این تاپیک رو دوباره ادامه می دم تا تموم بشه

sds1920
یک شنبه 23 فروردین 1394, 17:47 عصر
سلام ممنون از پستتون
من مشکل دارم!!!!:گریه::گریه:
این کل فایل منیفست منه:
__________________________________________________ _______
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="doctorapp.ir.ngmlmap"
android:versionCode="1"
android:versionName="1.0" >


<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17" />


<permission android:name="doctorapp.ir.ngmlmap.permission.MAPS_RECIEVE" android:protectionLevel="signature"/>
<uses-permission android:name="doctorapp.ir.ngmlmap.permission.MAPS_RECEIVE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_G SERVICES"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >


<activity
android:name="doctorapp.ir.ngmlmap.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AlzaSyC_xxxxxxxxxxxxxxxxxxxxxxxxxxxx"
/>

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

</application>


</manifest>
__________________________________________________ ___________________----
یه نکته : اگه این خط و حذف کنم وقتی برنامه به setcontentview میرسه اررور میده!!!

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
__________________________________________________ __________
وقتی این و میزاری برنامه اجرا میشه اما یه صفجه میاد که دمکه های زوم هستش و زیرشم اسم google هست اما هیچی دیگه نشون نمیده!!!
مشکل کجاست؟

روی گوشی خودمم که امتحان کردم همین شد!!!میشه بگید داستان چیه؟
با google APIS19 هم کار کردم

اگر چیزی رو نقشه نشون نمی ده ممکنه مشکل از ورژن Google play Service نصب شده رو گوشی باشه , یا اینکه FingerPrint برنامه تغییر کرده و یا اینکه Packege name برنامه رو تغییر داده باشین.
امیدوارم مشکل دیگه ای نباشه.

ali_khodayar
سه شنبه 01 دی 1394, 10:30 صبح
امکانش هست که آفلاینش رو هم توضیح بدین؟؟
من واقعآ توی این مبحث گیر کردم. نزدیک به 3 هفته س که دارم دنبال این نقشه آفلاین میگردم.

javadtaghavi
چهارشنبه 30 دی 1394, 00:05 صبح
سلام دوست عزیز ممنون از آموزش خوبتون
فقط یه سوال
من به قسمت google play service که رسیدم خودش مثل اینکه نصب بود و جلوش نوشته بود installed اما وقتی شروع به کار کردم هیچکدوم از کتابخونه ها رو برام نمیاره
چکار باید بکنم؟
با تشکر فروان