35 ارسال در این موضوع قرار دارد

همانگونه که در جریان قرار گرفته اید در 18 مارس 2013 ورژم دوم گوگل مپ  معرفی شد که دارای ویژگی های بسیاری بهتری نسبت به ورژن قبلی است. مانند پیدا کردن سریعتر موقعیت کاربر که بستگی به اینکه این موقعیت از GPS بدست امده یا WIFI و یا mobile data (موبایل دیتا) متغیر میباشد.

GPS دقیق است  و بهترین نتیحه را برمیگرداند ولی عیب آن مصرف زیاد باطری دیوایس و کند بودن میباشد و غیر فعال بودن در مکان های سرپوشیده میباشد.اما WIFI ضعیفترین و غیر دقیق ترین نتیجه را برمیگرداند ولی خوبی آن مصرف کم باطری میباشد.

مراحل مورد نیاز برای انجام پروژه:

1-      ایجاد برنامه جدید(کامپایل با  Google Api)

2-      وارد کردن کتابخانهGoogle Play Services

3-       دریافت اثر انگشت SHA1 شما

4-       دریافت mapKey خود را با استفاده از SHA1

5-       اصلاح AndroidManifest.xml

برنامه اندرویدی جدیدی ایجاد کنید.

[align=center]437x371http://www.codeproject.com/KB/android/614946/01.jpg[/img][/align]

وارد کردن کتابخانهGoogle Play Services

1-    کتابخانه google play services خود را که در مسیر زیر است پیدا کنید.

 ....\android-sdk\adt-bundle-windows-x86_64-20130522\adt-bundle-windows-x86_64-20130522\sdk\extras\google  

و آن را به Workspace خود انتقال دهید.

2-    کتابخانه را به محیط Eclipse وارد کنید.( File\Import\Existing Android Code Into Workspace )

[align=center]417x430http://www.codeproject.com/KB/android/614946/02.jpg[/img][/align]

کتابخانه Google Play Services  را به روش زیر به پروژه خود اضافه کنید .

روی پروژه کلیک راست  کرده سپس گزینه properties را انتخاب کنید به تب اندروید رفته و روی دکمه add کلیک کنید فقط کتابخانه Google Play Services را اضافه کرده و ok کنید.

[align=center]404x430http://www.codeproject.com/KB/android/614946/030.jpg[/img][/align]

دریافت اثر انگشت SHA1 شما

به مسیر زیر بروید:

Window\Preferences   Android\Build

اثر انگشت خود را پیدا کرده و کپی کنید.

[align=center]479x368http://www.codeproject.com/KB/android/614946/05.jpg[/img][/align]

به پنجره کنسول  Google Apis بروید.

[align=center]372x258http://www.codeproject.com/KB/android/614946/06.jpg[/img][/align]

پروژه جدیدی ایجاد کنید.

[align=center]07.jpg[/align]

گزینه Google Maps Android API V2 را فعال کنید.

[align=center]08.jpg[/align]

روی Create New Android Key کلیک کنید.

[align=center]565x317http://www.codeproject.com/KB/android/614946/09.jpg[/img][/align]

SHA1 را وارد کنید و بعد از آن ; و نام پکیج برنامه.

[align=center]422x293http://www.codeproject.com/KB/android/614946/10.jpg[/img][/align]

اصلاح فایل AndroidManifest.xml 

1-    اضافه کردن تگ زیر قبل از تگ


 

android:name="com.example.osman.permission.MAPS_RECEIVE"

android:protectionLevel="signature"/>

android:glEsVersion="0x00020000"

android:required="true"/>

 

2-    اضافه کردن کد زیر قبل از تگ

android:name="com.google.android.maps.v2.API_KEY"

android:value="YOUR_KEY"/>

 

و MainActivity شما مانند  کد زیر باشد.


 

import android.os.Bundle;

import android.app.Activity;

import android.support.v4.app.FragmentActivity;

import android.view.Menu;

public class MainActivity extends FragmentActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

}

}

 

برای استفاده از نشانگر در نقشه از کد زیر در فایلMainActivity استفاده کنید.


 

GoogleMap googleMap;

googleMap = ((SupportMapFragment)(getSupportFragmentManager().findFragmentById(R.id.map))).getMap();

LatLng latLng = new LatLng(-33.796923, 150.922433);

googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);

googleMap.addMarker(new MarkerOptions()

.position(latLng)

.title("My Spot")

.snippet("This is my spot!")

.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));

googleMap.getUiSettings().setCompassEnabled(true);

googleMap.getUiSettings().setZoomControlsEnabled(true);

googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));

 

1 کاربر پسند دیده است

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام.. ممنون از آموزشتون.

من تمام روش های شما رو انجام دادم

اما هنگامی که برنامه رو اجرا می کنم خطا میده

01-18 07:55:32.630: E/AndroidRuntime(1954): FATAL EXCEPTION: main01-18 07:55:32.630: E/AndroidRuntime(1954): java.lang.NoClassDefFoundError: com.google.android.gms.R$styleable01-18 07:55:32.630: E/AndroidRuntime(1954): 	at com.google.android.gms.maps.GoogleMapOptions.createFromAttributes(Unknown Source)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at com.google.android.gms.maps.SupportMapFragment.onInflate(Unknown Source)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.support.v4.app.FragmentActivity.onCreateView(FragmentActivity.java:284)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:386)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:320)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.view.LayoutInflater.inflate(LayoutInflater.java:276)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.Activity.setContentView(Activity.java:1657)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at ir.parsidev.coponetclub.ShowMapFragment.onCreate(ShowMapFragment.java:39)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.ActivityThread.access$1500(ActivityThread.java:117)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.os.Handler.dispatchMessage(Handler.java:99)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.os.Looper.loop(Looper.java:130)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at android.app.ActivityThread.main(ActivityThread.java:3683)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at java.lang.reflect.Method.invokeNative(Native Method)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at java.lang.reflect.Method.invoke(Method.java:507)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)01-18 07:55:32.630: E/AndroidRuntime(1954): 	at dalvik.system.NativeStart.main(Native Method)

ممنون میشم راهنماییم کنید

با تشکر

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آیا  کتابخانه؟

 android.support.v4.app

را به پروژه خود اضافه کرده اید؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آیا  کتابخانه؟

 android.support.v4.app

را به پروژه خود اضافه کرده اید؟

بله. این کتابخانه به صورت پیش فرض اضافه می شه.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کد Layout خود را که نقشه را نمایش میدهید قرار دهید؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
<?xml version="1.0" encoding="utf-8"?>   xmlns:tools="http://schemas.android.com/tools"   android:layout_width="fill_parent"   android:layout_height="fill_parent"    android:background="#f7f7f7"   android:paddingBottom="@dimen/activity_vertical_margin"   android:paddingLeft="@dimen/activity_horizontal_margin"   android:paddingRight="@dimen/activity_horizontal_margin"   android:paddingTop="@dimen/activity_vertical_margin">       android:id="@+id/lblTitleMAP"       android:layout_width="wrap_content"       android:layout_height="wrap_content"       android:layout_alignParentLeft="true"       android:layout_alignParentRight="true"       android:layout_alignParentTop="true"       android:layout_marginBottom="10dp"       android:gravity="right"       android:shadowColor="#000000"       android:shadowDx="1"       android:shadowDy="2"       android:shadowRadius="1.5"       android:text="TextView"       android:textColor="#D81F54"       android:textSize="23sp" />    android:id="@+id/lblAddress_MAP"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignParentLeft="true"    android:layout_alignParentRight="true"    android:layout_below="@+id/lblTitleMAP"    android:layout_marginBottom="6dp"	style="@style/TextShadow"    android:gravity="right"    android:text="TextView" />       android:id="@+id/btnBackMain_MAP"       style="@style/Button_Default"       android:layout_width="fill_parent"       android:layout_height="wrap_content"       android:layout_alignParentBottom="true"       android:layout_marginTop="10dp"       android:text="@string/strBack" />    android:id="@+id/button2"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_below="@+id/lblAddress_MAP"    android:layout_centerHorizontal="true"       style="@style/Button_Default"       android:textSize="20sp"    android:text="Button" />    android:id="@+id/button1"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignLeft="@+id/map"    android:layout_below="@+id/lblAddress_MAP"       style="@style/Button_Default"       android:textSize="20sp"    android:text="Button" />    android:id="@+id/button3"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_alignRight="@+id/lblTitleMAP"    android:layout_below="@+id/lblAddress_MAP"       style="@style/Button_Default"       android:textSize="20sp"    android:text="Button" />    android:id="@+id/map"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:layout_above="@+id/btnBackMain_MAP"    android:layout_below="@+id/lblAddress_MAP"    class="com.google.android.gms.maps.SupportMapFragment" />

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

پروژه را روی چه گوشی یا تبلتی تست کرده اید و اینکه آیا پروژه را که دیباگ  میکنید در کدام خط برنامه Crash میکنید؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

در گوشی xperia Arc s تست کردم.

به دلیل اینکه از امولاتور genymotion استفاده می کنم و این امولاتور از google play service پشتیبانی نمی کنه. مستقیم روی گوشی تست کردم که متاسفانه توی گوشی دیگه کد خطایی اعلام نمی کنه.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام اگه ممکنه یه پروژه آماده اکلیپس که فقط یه نقشه داشته باشه بزارین که بتونیم ازش استفاده کنیم من کلی آموزش ایرانی و خارجی استفاده کردم ولی به نتیجه نرسیدم. خواهشا کمک کنید.... google paye services و google api 2.3.3 و key رو هم دریافت کردم مشکلم اینه که هرکاری میکنم برنامم زمان اجرا خطا میده ، اگه یه پروژه آماده باشه میتونم با مقایسه اون به نتیجه برسم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من ی مشکلی دارم وقتی میام کتابخانه google play service

رو اضافه کنم فقط  برام mainactivity , helloactivity رو میاره باید چیکار کنم؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای رفع این مشکل باید Google Play Service را بصورت New Project from Existing Source وارد کنید.نه با Import

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من ی مشکل دیگه ای دارم کتابخانه رو که اضافه میکنم به پروژه اضافه نمیشه در lib پروژه ام و وقتی میخوام رو امیلاتور اجرا بگیرم خطا میده که

android library project cannot be launched

اما من همون کار رو انجام میدم رو اسم پروژه کلیک راست میکنم و اضافه میکنم کتابخانه رو اما این مشکل رو دارم

لطفا راهنماییم کنید

ممنون

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام دوستان کی میتونه در این مورد به صورت کامل همه رو راهنمایی کنه هیچ آموزش فارسی وجود نداره تو وب. من نقشه رو میتونم بزارم مشکلم اینه که میخوام تو نقشم یه مختصات خاص نشون داده بشه و قابلیت مسیر یابی از نقطه فعلی تا اون نقطع مورد نظر هم باشه.

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای مسیریابی در نقشه گوگل میتوانید از Library زیر استفاده کنید

https://github.com/jd-alexander/Google-Directions-Android

ممنون از اینکه سریع پاسخ دادین اگه ممکن هست یکم بیشتر راهنمایی کنید. چطوری میتونم از این استفاده کنم؟ آموزشی هست؟ متاسفانه حرفه ای نیستم.... :-(

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کسی نمیتونه کمک کنه؟؟؟؟ 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

کسی نمیتونه کمک کنه؟؟؟؟ 

شما اگه اموزش های پایه رو یاد بگیرید بعد وارد کارای حرفه ای تر بشید خیلی بهتره

بهتر مفهوم هر کد رو بهتر از الان میگیرید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام ممنون از آموزش! فقط میشه لینک دانلود برنامه ای که این رو میسازید هم بزارید؟ من مبتدی هستم!

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ببخشیدا من این برنامه رو میگم:01.jpg

اسمش یا لینکش! این که شما دادید فک کنم مربوط به یک برنامه ی اندرویدی هست نه این برنامه؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
دوست عزیز اینم برنامه اندرویدیه دیگه اونم اندرویدی بود!!

اینم سورس همین اموزش

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون، من برنامه رو که دادید رو دانلود کردم 

600x325http://www.uplooder.net/img/image/25/bbf9c6e7a830dc0f51b3e860597a5963/Untitled.jpg[/img]

حالا با چه برنامه ای اجراش کنم تا شبیه آموزش تصویری شما در بیاد؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
!

من با اکلیپس درستش کردم

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام خدمت مهندسین عزیز

یه سوال

من یه برنامه کوچیک درست کردم که نقشه رو نشون بده

مراحل و کامل انجام دادم برنامه هم با google apis19 کامپایل میشه

اجرا میشه و صفحه نقشه میاد اما صفحه سیاهه!!مورد خاصی داره؟اشکال کجاست؟

یه سوال دیگه!!

اثر انگشتی که از سایت گوگل دریافت میشه مخصوص emulator هستش، وقتی برنامه کامل شده و خواستیم روی گوشی تست کنیم پیکار کنیم؟؟؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

اروری در لوگ کت وجود ندارد.؟

شاید پرمیشن های لازم را قرار نداده اید

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط Omid Zakeri
      اپلیکیشن ها به طرق گوناگون با کاربران خود تعامل برقرار می کنند و استفاده از سرویس های موقعیت یاب نیز یکی از روش های رایج برای نمایش اطلاعات شخصی سازی شده به کاربر می باشد، بدین ترتیب اپلیکیشن می تواند با دنیای فیزیکی ارتباط برقرار کرده و به افزایش تعامل کاربر منجر شود. بسیاری از اپلیکیشن ها این قابلیت را مورد استفاده قرار می دهند، اما موضوع این مطلب آموزشی پرداختن به Geofences است که اغلب نادیده گرفته می شود.
      Geofence یک مجموعه فضای مجازی را بر روی یک منطقه جغرافیایی واقعی تعیین می کند. با ترکیب موقعیت قرارگیری کاربر با geofence perimeter امکان فهمیدن اینکه آیا کاربر در داخل یا خارج یک geofence قرار دارد و یا در حال ورود یا خروج از یک منطقه خاص است، ممکن می شود.
       

       
      یک اپلیکیشن دانشگاه را تصور کنید که می تواند شما را از همکاران و استادانی که در محوطه دانشگاه قرار دارند، اگاه سازد و یا اپلیکشن یک مرکز خرید بزرگ که به مشتریان خود هدیه می دهد، احتمالات دیگری نیز وجود دارند که می توان مورد بررسی قرار داد.
      در این مطلب آموزشی نحوه استفاده از geofence در اندروید را فرا خواهید گرفت،
       
      ابتدا باید مجوزها را در AndroidManifest وارد کنید.
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission. ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.INTERNET" />  
      Geofencing نیاز به سرویس API گوگل دارد.
      build.gridle خود را باز کنید و dependency را اضافه کنید.
      compile 'com.google.android.gms:play-services-location:8.4.0'  
      پیاده سازی Geofencing :
      ابتدا باید بررسی کنیم آیا این سرویس دارای سرویس های Google Play نصب شده است یا خیر.
      int resp = GooglePlayServicesUtil.isGooglePlayServicesAvailable(this); if (resp == ConnectionResult.SUCCESS) { mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(connectionAddListener) .addOnConnectionFailedListener(connectionFailedListener) .build(); mGoogleApiClient.connect(); } else { Log.e(TAG, "Your Device doesn't support Google Play Services."); } برای گرفتن آخرین مکان شناخته شده، می توانیم از API GoogleServices خود استفاده کنیم.
      // Create the LocationRequest object mLocationRequest = LocationRequest.create() .setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY) .setInterval(10 * 1000) // 10 seconds, in milliseconds .setFastestInterval(1 * 1000); // 1 second, in milliseconds  
       
      دریافت موقعیت مکانی
      Location location = LocationServices.FusedLocationApi.getLastLocation(mGoogleApiClient); if (location == null) { LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, this); } else { currentLatitude = location.getLatitude(); currentLongitude = location.getLongitude(); }  
       
      Location Listeners
      @Override public void onLocationChanged(Location location) { currentLatitude = location.getLatitude(); currentLongitude = location.getLongitude(); } Now we will add both Success and Fail Listeners. private GoogleApiClient.ConnectionCallbacks connectionAddListener = new GoogleApiClient.ConnectionCallbacks() { @Override public void onConnected(Bundle bundle) { } @Override public void onConnectionSuspended(int i) { } }; private GoogleApiClient.OnConnectionFailedListener connectionFailedListener = new GoogleApiClient.OnConnectionFailedListener() { @Override public void onConnectionFailed(ConnectionResult connectionResult) { } };  
       
      اضافه کردن Geofencing
      /** * Create a Geofence list by adding all fences you want to track */ public void createGeofences(double latitude, double longitude) { String id = UUID.randomUUID().toString(); Geofence fence = new Geofence.Builder() .setRequestId(id) .setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER | Geofence.GEOFENCE_TRANSITION_EXIT) .setCircularRegion(latitude, longitude, 200) // Try changing your radius .setExpirationDuration(Geofence.NEVER_EXPIRE) .build(); mGeofenceList.add(fence); }  
       
      ایجاد Geofencing Request
      private GeofencingRequest getGeofencingRequest() { GeofencingRequest.Builder builder = new GeofencingRequest.Builder(); builder.setInitialTrigger(GeofencingRequest.INITIAL_TRIGGER_ENTER); builder.addGeofences(mGeofenceList); return builder.build(); }  
       
      افزودن PendingIntent
      private PendingIntent getGeofencePendingIntent() { // Reuse the PendingIntent if we already have it. if (mGeofencePendingIntent != null) { return mGeofencePendingIntent; } Intent intent = new Intent(this, GeofenceTransitionsIntentService.class); // We use FLAG_UPDATE_CURRENT so that we get the same pending intent back when // calling addGeofences() and removeGeofences(). return PendingIntent.getService(this, 0, intent, PendingIntent. FLAG_UPDATE_CURRENT); }  
       
      یجاد کلاس "GeofenceTransitionsIntentService" که اکستند می کند از  IntentService 
      public class GeofenceTransitionsIntentService extends IntentService { private static final String TAG = "GeofenceTransitions"; public GeofenceTransitionsIntentService() { super("GeofenceTransitionsIntentService"); } @Override protected void onHandleIntent(Intent intent) { GeofencingEvent geofencingEvent = GeofencingEvent.fromIntent(intent); if (geofencingEvent.hasError()) { Log.e(TAG, "Goefencing Error " + geofencingEvent.getErrorCode()); return; } // Get the transition type. int geofenceTransition = geofencingEvent.getGeofenceTransition(); if (geofenceTransition == Geofence.GEOFENCE_TRANSITION_ENTER){ showNotification("Entered", "Entered the Location"); } else if(geofenceTransition == Geofence.GEOFENCE_TRANSITION_EXIT) { showNotification("Exited", "Exited the Location"); } else { showNotification("Error", "Error"); } public void showNotification(String text, String bigText) { // 1. Create a NotificationManager NotificationManager notificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); // 2. Create a PendingIntent for AllGeofencesActivity Intent intent = new Intent(this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingNotificationIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 3. Create and send a notification Notification notification = new NotificationCompat.Builder(this) .setSmallIcon(R.mipmap.ic_launcher) .setContentTitle(text) .setContentText(text) .setContentIntent(pendingNotificationIntent) .setStyle(new NotificationCompat.BigTextStyle().bigText(bigText)) .setPriority(NotificationCompat.PRIORITY_HIGH) .setAutoCancel(true) .build(); notificationManager.notify(0, notification); } }  
       
      **منبع**
       
       
       
       
       
       
       

    • توسط Omid Zakeri
      ActivityNotFoundException این خطا وقتی رخ میده که برنامه سعی کنه یک اکتیویتی که وجود نداره رو اجرا کنه. معمولا وقتی این خطا پیش میاد که فراموش می کنیم اکتیویتی ساخته شده رو به فایل منیفست اضافه کنیم.
       
      ClassCastException وقتی با خطای ClassCastException روبرو میشید، یعنی دارید سعی می کنید روی دو آبجکت که از دو نوع مختلف هستن یک عملیات رو انجام بدید. مثلا وقتی که می خواید یه مقدار عددی رو به یک استرینگ اضافه کنید. برای حل کردن این مشکل کافیه از طریق لوگ، خطی که خطا اونجا رخ داده رو پیدا کنید و متغیر ها رو از یک نوع کنید.
       
      Error converting byte to dex اگر به این مشکل بر خوردید، اول پروژه رو clean کنید ( Build > Clean Project ) و سپس اون رو بازسازی کنید ( Build > Rebuild Project ) و اگر همچنان با این مشکل روبرو شدید چک کنید که آیا پکیج هایی که در کلاس هاتون استفاده کردید با اسم پکیج هایی که توی فایل منیفست هستن یکی هستن یا نه.
       
      INSTALL_FAILED_INSUFFICIENT_STORAGE این پیغام خطا به معنی این هست که فضای کافی برای اجرای برنامه وجود نداره. اگر از شبیه ساز ها استفاده می کنید میتونید از طریق منوی مدیریت AVD در شبیه ساز مورد نظر فضای بیشتری رو به اون اختصاص بدید و اگر از موبایل واقعی استفاده می کنید بهترین کار پاک کردن برنامه های بی استفاده و پاک کردن کش گوشی هست.
       
      NullPointerException شاید معروف ترین خطا در برنامه نویسی جاوا NullPointerException باشه. این مشکل وقتی پیش میاد که یک آبجکت ایجاد شده باشه اما هیچ فضایی در حافضه به اون اختصاص داده نشده باشه (null)، یا به زبان ساده تر یک آبجکت ساخته میشه اما تعریف نمیشه. مثلا کد زیر باعث ایجاد همچین خطایی میشه
      Object obj; obj.toString();
      برای حل کردنش هم باید با استفاده از لوگ، آبجکتی که ساخته شده و تعریف نشده رو پیدا کرد و سپس مقدار دهیش کرد.
       
      R.layout.main Cannot Be Found / Cannot resolve symbol R راه حل این خطا هم مثل شماره ی ۳ کلین و بازسازی پروژست. البته گاهی انجام این کار برای یک بار مشکل رو حل نمیکنه. اگر با انجام دادن اونها ( حتی برای چندین بار) مشکل حل نشد بهتر هست کش رو پاکسازی کنید (File > Invalidate Caches / Restart ). اگر باز هم مشکل حل نشد پروژه رو چک کنید که فایل های لی آوت در کلاس ها درست استفاده شدن و در نهایت آخرین کار، ساختن یک پروژه ی جدید و انتقال کد ها به اونجاست.
       
      OutofMemoryError معمولا وقتی این خطا رخ میده که برنامه سعی می کنه از مقدار خیلی زیادی حافظه ی رم استفاده کنه. معمولا استفاده از فایل های bitmap با حجم بالا علت این خطا هست و کم کردن حجم اون معمولا مشکل رو حل می کنه.
       
      Only the original thread that created a view hierarchy can touch its views وقتی که یک UI رو بخواید از خارج از اون آپدیت کنید با همچین خطایی روبرو می شید. همیشه باید سعی بشه که از این کار پیشگیری کنید اما اگر مجبور هستید این کار رو انجام بدید از runOnUiThread  استفاده کنید.
       
      Too many field references وقتی برنامه بیشتر از ۶۵۵۳۶ رفرنس داشته باشه این پیغام نشون داده میشه. در اندروید فایل هایی که به اونها dex فایل ها گفته میشه وجود داره که بیشترین تعداد رفرنس ها در هر کدوم از اونها عدد بالا هست. روش بهتر کم کردن تعداد رفرنس هاست اما در موقع نیاز میشه از چند دکس فایل استفاده کرد.
       
      NetworkOnMainThreadException وقتی بخواید عملیاتی که مربوط به شبکه هست رو در ترد اصلی استفاده کنید با این پیام روبرو میشید. به طور کلی استفاده از عملیاتی که زمانبر هست توی ترد های اصلی با خطا روبرو میشه و راه حل هم استفاده از AsyncTask هست.
       
      Activity has leaked window that was originally added here اگر از دیالوگ ها توی برنامتون استفاده کرده باشید احتمالا با این خطا روبرو شدید. این مشکل وقتی پیش میاد که یک دیالوگ در اکتیویتی ساخته شده باشه اما با از بین رفتن اکتیویتی، اون از بین نره. برای این کار کافی هست در متد onDestroy مربوط به اکتیویتی دیالوگ رو دیسمیس کنید ( dialog.dismiss() )
    • توسط saeedsektor
      سلام دوستان . خسته نباشید .
      من به تازگی تصمیم به یادگیری اندروید گرفتم ولی خب متاسفانه همین اول را به مشکلی خوردم که درست بشو نیست
      به زبان انگلیسی هم سرچ کردم ولی جایی جواب درستی نبود . مشکل من اینه که همون اولی که اندروید استودیو رو باز میکنم این ارور میاد
      Error:Failed to find Build Tools revision 26.0.2
      پیر شدم سر این .
      حالا روش هایی که امتحان کردم هم زیاد بوده ولی جواب نبوده مثلا تو stackoverflow گفته بود که برو تو project structure بعد تو properties و اونجا ورژن build tools رو عوض کن . در صورتی که اصلا در project structure من اصلا properties نیست .
      یک جای دیگه گفته بود که این خط رو به build.gradle اضافه کن درست میشه buildToolsVersion "24.0.0" اضافه کردم و هیچ عملی نکرد باز هم همون ارور
      وقتی دیدم راهی نداره گفتم باید این فایل رو دانلود کنم چندین جا گشتم و نبود ولی یک جا پیدا کردم دانلود کردم و extract کردم تو پوشه build tools ولی جوابی نبود و همون ارور میومد .
      الان راه چیه ؟ اگی فایلی هست که شما میدونین بگین تا دانلود کنم
    • توسط niloobani
      دوستان به یک برنامه نویس و توسعه دهنده ios و اندروید در یک شرکت معتبر نیاز دارم. لطفا در صورت داشتن شرایط پیام بدید
      http://banijob.com/company/پیشگامان-هوا-و-انرژی/jobs/APP-Developer
    • توسط AliMirzaei
      سلام
      من موقع ران کردن کد در ecilpse با اروری مواجه شدم! ممنون میشم مشکل من را حل کنید!
      مشکل در تصاویر زیر آمده است!
      مدل سیستم+نسخه JDK ,JRE + نسخه ecilpse در تصاویر آمده!
       
       
       






  • دوره آموزشی اندروید ایران کانادا آموزش ویدئویی اندروید آموزش برنامه نویسی اندروید اندروید کاپ دوره آنلاین اندروید کتاب های آموزشی اندروید بسته آموزشی اندروید دوره برنامه نویسی اندروید آموزش Kotlin آموزش برنامه نویسی ios
  • فایل