سوالات متداول اس دی کی اندروید

همه برنامه‌های اندروید برای انتشار در گوگل پلی و مارکت‌های معتبر باید امضای دیجیتال داشته باشند.
برای امضای دیجیتال کردن برنامه، نیاز به یک محل نگهداری کلیدهای امضا دارید. این فایل اصطلاحاً keystore نامیده می‌شود. در یک keystore می‌توانید هر تعداد کلید که می‌خواهید ذخیره کنید.
زمانی که برنامه‌ای در اندروید استدیو می‌سازید، در زمان کامپایل و نصب برنامه، اندروید SDK به صورت خودکار برنامه‌ها را با یک کلید از پیش تعریف شده در keystore پیش‌فرض امضا می‌کند.
این کلید، کلید debug نامیده میشود.

از طرفی هنگام خروجی گرفتن از برنامه خود در قالب apk یا bundle نیاز به یک keystore ریلیز دارید که از طریق منوی Build و گزینه Generate signed bundle / apk میتوانید اقدام به ساختن آن کنید.

هر کلید دارای یک اثر انگشت یا SHA1 fingerprint است، توسط دستوراتی که در مستندات نشان ذکر شده میتوانید در سیستم عامل های مختلف اثر انگشت مربوط به کلید خود را به دست آورید

لود نشدن نقشه میتواند دلایل متعددی داشته باشد که در ادامه به آنها اشاره میشود:

1- فینگرپرینت مربوط به نسخه دیباگ یا ریلیز صحیح نیست

2- نام باندل یا package name با package name اپلیکیشن همخوانی ندارد.

3- زمانی که حساب کاربری معلق شده باشد، از دلایل معلق شدن حساب کاربری میتوان به موارد زیر اشاره کرد:

– زمانی که حساب کاربری بدهی بیشتر از 100 هزار تومان داشته باشد

– زمانی که 24 ساعت از زمان منفی شدن موجودی گذشته باشد

4- زمانی که تعداد ریکوئست در دقیقه بیشتر از 500 ریکوئست باشد

5- زمانی که به هر دلیلی حساب کاربری شما مسدود شود مانند داشتن بیش از یک حساب کاربری

در چنین مواقعی پروژه را یک بار clean و make کنید، در صورتی که مشکل حل نشد، از منوی فایل گزینه Invalidate caches را انتخاب کنید تیک Clear file system cache and local history را زده و دکمه Invalidate and restart را بزنید

در صورتی که در فایل gradle.properties پروژه خود، پروکسی ست کرده اید، آن را حذف نموده و مجددا پروژه را sync نمایید.

بله، شما میتوانید از طریق متد addMarkers که لیستی از Marker را به عنوان ورودی دریافت میکند، اقدام به افزودن یکجای نشانه ها کنید.

بله، شما میتوانید از طریق متد clearMarkers که روی شیء map وجود دارد، همه نشانگرهایی را که اضافه کرده اید را به صورت یکجا حذف نمایید

پس از اینکه نشانگر را تولید پس از ایجاد نشانگر، فیلد title و description را از طریق متد setTitle و setDescription روی آن ست کنید و سپس برای نمایش عنوان و توضیحات متد showInfoWindow را روی شی نشانگر صدا بزنید

شما میتوانید از طریق متد moveToCameraBounds که روی شی نقشه صدا زده میشود، اقدام به نمایش محدوده دلخواه از نقشه کنید

از طریق متد moveCamera که یک شی LatLng را از ورودی دریافت میکند که این شی نقطه جغرافیایی ایست که به این متد داده میشود تا دوربین روی آن نقطه قرار بگیرد میتوانید دوربین را حرکت دهید

بله، از طریق متدهای زیر میتوانید شروع حرکت نقشه، پایان حرکت و نقشه در حال حرکت را تشخیص دهید:

1- متد setOnCameraMoveListener: هنگامی که نقشه در حال حرکت است

2- متد setOnCameraMoveStartListener: هنگامی که نقشه شروع به حرکت میکند

3- setOnCameraMoveFinishedListener: هنگامی که نقشه از حرکت می ایستد

از طریق متد getCameraTargetPosition که روی شی نقشه صدا زده میشود و خروجی آن LatLng است، میتوانید مختصات نقطه وسط نقشه را بدست آورید

هنگامی که عکس نشانگر دارای فاصله خالی در اطراف خود باشد، این اتفاق می افتد، برای حل مشکل میتوانید روی شی MarkerStyleBuilder که از طریق آن استایل مارکر (نشانه) را set میکنید، از متد setAnchorPoint برای تنظیم مکان عکس به صورت افقی و عمودی روی نقطه کلیک شده استفاده کنید. همچنین میتوانید از متد setAnchorPointX فقط برای جابجایی افقی و از setAnchorPointY فقط برای جابجایی عمودی عکس مارکر استفاده کنید.

از طریق متد setOrientationMode که روی شی MarkerStyleBuilder (شی ای است که از طریق آن استایل مربوط به نشانگر را تعریف میکنیم) صدا زده میشود، میتوان نوع چرخش نشانگر هنگام چرخش دوربین را تعریف کرد
چرخش نشانگر همراه با نقشه با ارسال مقدار BillboardOrientation.BILLBOARD_ORIENTATION_GROUND به متد setOrientationMode امکانپذیر است

اس دی کی نشان دارای یک Util به نام BitmapUtils است که از طریق آن میتوانید یک Bitmap را ویرایش کنید، از طریق متد Rotate به صورت زیر میتوانید عکس مربوط به مارکر را چرخانده و سپس عکس را دوباره به مارکر ست کنید:

MarkerStyleBuilder markerStyleBuilder = new MarkerStyleBuilder();
markerStyleBuilder.setBitmap(BitmapUtils.createBitmapFromAndroidBitmap(BitmapUtils.rotate(BitmapFactory.decodeResource(getResources(), R.drawable.ic_marker),90)));
marker.setStyle(markerStyleBuilder.buildStyle());

تکه کد بالا، عکس مارکر را 90 درجه چرخانده و روی شی MarkerStyleBuilder ست میکند و در نهایت استایل را از طریق متد setStyle روی مارکر ست میکند.

از طریق متد زیر میتوانید لوگوی نشان را جابجا کنید:

map.getSettings().setNeshanLogoMargins(0,0);

پارامتر اول مشخص کننده فاصله از سمت چپ و پارامتر دوم مشخص کننده فاصله لوگو از پایین است.