یادداشت‌های انتشار کیت توسعه نرم‌افزار مصرف‌کننده برای Android

این بخش حاوی یادداشت‌های انتشار برای «کیت توسعه نرم‌افزار مصرف‌کننده برای Android» است.

اعلامیه: توقف پشتیبانی از سطح API ۲۳، ۲۴، و ۲۵

مطابق با خط‌مشی پشتیبانی از نسخه سیستم‌عامل تلفن همراه، در نسخه‌های اصلی آتی «کیت توسعه نرم‌افزار مصرف‌کننده برای Android»، پشتیبانی از Android 6 و 7 (سطح میانای برنامه کاربردی ۲۳، ۲۴، و ۲۵) را متوقف خواهیم کرد.

نسخه‌های Consumer SDK for Android که از سه‌ماهه چهارم سال ۲۰۲۵ منتشر می‌شوند، حداقل از Android 8 (سطح میانای برنامه‌سازی کاربردی ۲۶) پشتیبانی خواهند کرد. نسخه‌های قدیمی‌تر کیت توسعه نرم‌افزار همچنان از Android 6 و 7 پشتیبانی خواهند کرد.

اگر وابستگی‌هایتان شماره نسخه را مشخص نکنند، «محیط توسعه یکپارچه» شما جدیدترین نسخه کیت توسعه نرم‌افزار را بار می‌کند و ساخت‌های جدید برنامه‌تان از Android 6 و 7 پشتیبانی نخواهند کرد.

نسخه «کیت توسعه نرم‌افزار مصرف‌کننده برای Android» را در وابستگی‌های ساخت برنامه مشخص کنید تا بتوانید زمان افزایش حداقل سیستم‌عامل پشتیبانی‌شده برای نسخه‌های جدید برنامه‌تان را کنترل کنید.

‫۴.۱.۰ (۲۶ مه ۲۰۲۶)

  • بهبودهای داخلی: فضای ذخیره‌سازی داده‌های داخلی به «ذخیره داده Jetpack» منتقل شد.

تغییرات پیکربندی و وابستگی

  • نسخه وابستگی Kotlin به نسخه ۲.۳.۰ ارتقا یافت.
  • افزایه Android Gradle به نسخه ۸.۱۳.۲ ارتقا یافت.
  • ‫Gradle به نسخه ۸.۱۳ ارتقا یافت.
  • کتابخانه Desugar به نسخه ۲.۱.۵ ارتقا یافت.
  • «کیت توسعه نرم‌افزار Maps» به نسخه ۲۰.۰.۰ ارتقا یافت و وابستگی‌های «هسته سرویس‌های تلفن همراه Google» زیر به‌روزرسانی شد:
    • play-services-location: 21.3.0
    • play-services-tasks: 18.4.1
    • play-services-common: 18.1.0
    • play-services-basement: 18.1.0
  • وابستگی‌های Jetpack Datastore اضافه شد (androidx.datastore:datastore-core:1.2.0, androidx.datastore:datastore-guava:1.2.0).

‫4.0.0 (۳ اکتبر ۲۰۲۵)

  • بهبودهای داخلی.

‫۳.۲.۰ (۲۶ ژوئن ۲۰۲۵)

  • بهبود گزارش‌دهی داخلی.

تغییرات پیکربندی و وابستگی

  • از نسخه 3.2.0 کیت توسعه نرم‌افزار (SDK) مصرف‌کننده برای Android، برنامه‌ها باید به Kotlin 2.1 ارتقا یابند.

رفع اشکال‌ها

  • برای تصمیم‌گیری‌های پویانمایی داخلی، به‌جای فاصله هوایی از طول چندخطی استفاده کنید.

‫۳.۱.۰ (۱۰ مارس ۲۰۲۵)

  • بهبودهای گزارش‌دهی داخلی.

‫۳.۰.۰ (۶ دسامبر ۲۰۲۴)

تغییرات پیکربندی و وابستگی

‫۲.۹۹.۰ (۲۵ نوامبر ۲۰۲۴)

رفع اشکال‌ها

  • خطای ANR را که وقتی ConsumerApi.cleanUp() برای اجرا شدن خیلی طول می‌کشد برطرف می‌کند. پس‌از یکپارچه شدن نسخه پخش، این ویژگی به‌تدریج (از ۰٪) عرضه خواهد شد.
  • مشکلی را برطرف می‌کند که در آن، درایورها خطاهای gRPC با کد «داخلی» و پیام «وحشت! این یک اشکال است!». پس‌از یکپارچه شدن نسخه پخش، این ویژگی به‌تدریج (از ۰٪) عرضه خواهد شد.

‫۲.۳.۰ (۲ اوت ۲۰۲۴)

تغییرات میانای برنامه‌سازی کاربردی

‫۲.۲.۰ (۷ مه ۲۰۲۴)

تغییرات میانای برنامه‌سازی کاربردی

  • میانای برنامه‌سازی کاربردی پشتیبانی برای یکپارچه‌سازی Jetpack Compose اضافه شد. این ویژگی آزمایشی است. برای جزئیات درباره ادغام با Jetpack Compose، با نماینده‌تان تماس بگیرید.

‫۲.۱.۰ (۱۷ ژانویه ۲۰۲۴)

رفع اشکال‌ها

  • خرابی‌ای را که وقتی کیت توسعه نرم‌افزار بیش‌از یک‌بار درطول چرخه عمر برنامه مقداردهی اولیه می‌شود برطرف می‌کند.

تغییرات میانای برنامه‌سازی کاربردی

  • روش بازیابی نمونه GoogleMap ایجادشده توسط کیت توسعه نرم‌افزار را معرفی می‌کند (ConsumerGoogleMap.getGoogleMap()).
  • میانای برنامه‌سازی کاربردی را برای بازیابی نمونه‌های Marker ایجادشده توسط کیت توسعه نرم‌افزار برای نمایش خودرو (ConsumerController.getConsumerMarker()) معرفی می‌کند.
  • میانای برنامه‌سازی کاربردی را برای دریافت به‌روزرسانی‌های پیش‌بینی‌شده کارخواه برای زمان و مسافت درطول «هم‌رسانی سفر» (ProjectedRouteEta) معرفی می‌کند.

‫۱.۹۹.۲ (۳ نوامبر ۲۰۲۳)

  • خرابی‌ای را که هنگام مقداردهی اولیه کیت توسعه نرم‌افزار از پردازش راه دور، جدا از برنامه، رخ می‌دهد برطرف می‌کند.

  • خرابی‌ای را که هنگام اجرای پویانمایی دوربین رخ می‌دهد و فضای عمودی یا افقی کافی برای حاشیه داخلی وجود ندارد برطرف می‌کند. این مشکل فقط در جدیدترین رندرکننده نقشه‌ها رخ می‌دهد.

  • اشکالی را برطرف می‌کند که باعث می‌شود بخش اول سفر «پشت‌سرهم» وقتی بخش دوم از همان جاده می‌گذرد، حذف شود.

مشکلات

  • اگر ConsumerApi.initialize() زمانی فراخوانی شود که نمونه API ازقبل وجود داشته باشد، استثنا قائل می‌شود. برای دور زدن این مشکل، ابتدا با ConsumerApi.getInstance() تماس بگیرید و Task برگشتی را ارزیابی کنید تا مشخص شود آیا نمونه API ازقبل وجود دارد یا نه.

‫۲.۰.۰ (۱۵ سپتامبر ۲۰۲۳)

اعلامیه: تغییرات ناگهانی

  • حداقل الزام سطح میانای برنامه کاربردی از ۲۱ به ۲۳ به‌روزرسانی شده است.

  • الزامات نسخه «کیت توسعه نرم‌افزار Google Maps» را از v17.0.0 به v18.1.0 به‌روز می‌کند

  • حداقل نسخه موردنیاز کتابخانه استاندارد Kotlin از نسخه ۱.۶.۱۰ به نسخه ۱.۹.۰ به‌روزرسانی شده است

  • به‌روزرسانی نسخه‌های وابستگی‌های «خدمات Google Play»

    • حداقل نسخه موردنیاز کتابخانه play-services-base از v18.0.1 به v18.2.0 به‌روزرسانی شد

    • حداقل نسخه موردنیاز کتابخانه play-services-basement از v18.0.0 به v18.2.0 به‌روزرسانی شد

    • حداقل نسخه موردنیاز کتابخانه play-services-location از v17.0.0 به v21.0.1 به‌روزرسانی شد

    • حداقل نسخه موردنیاز کتابخانه play-services-tasks از نسخه ۱۸.۰.۱ به نسخه ۱۸.۰.۲ به‌روزرسانی شده است

  • کتابخانه androidx.room:room-runtime را با حداقل نسخه موردنیاز تنظیم‌شده به v2.5.2 اضافه می‌کند

  • نسخه‌های وابستگی‌های زیر را به‌روز کنید

    • حداقل نسخه موردنیاز کتابخانه android-maps-utils از v0.4.2 به v3.5.2 به‌روزرسانی شد

    • حداقل نسخه com.google.android.datatransport:transport-backend-cct موردنیاز از v3.0.0 به v3.1.9 به‌روزرسانی شده است

    • حداقل نسخه com.google.android.datatransport:transport-runtime موردنیاز از v3.0.1 به v3.1.9 به‌روزرسانی شده است

    • حداقل پیش‌نیاز نسخه androidx.lifecycle:lifecycle-extensions از v2.0.0 به v2.2.0 به‌روزرسانی شد

    • حداقل پیش‌نیاز نسخه androidx.lifecycle:lifecycle-common-java8 از v2.0.0 به v2.6.1 به‌روزرسانی شد

    • حداقل نسخه androidx.appcompat:appcompat موردنیاز از v1.0.0 به v1.6.1 به‌روزرسانی شده است

    • حداقل پیش‌نیاز نسخه androidx.fragment:fragment از v1.0.0 به v1.6.1 به‌روزرسانی شد

  • میاناهای برنامه‌سازی کاربردی منسوخ‌شده قبلی زیر را برمی‌دارد: ConsumerTrip، ConsumerTripCallback، ConsumerTripManager، ConsumerTripOptions. ‫TripModel، TripModelCallback، TripModelManager، و TripModelOptions جایگزین آن‌ها شدند.

  • برنامه‌هایی که از Consumer SDK استفاده می‌کنند اکنون باید targetSdkVersion از API 31 یا بالاتر، compileSdkVersion از API 33 یا بالاتر داشته باشند.

  • برنامه‌هایی که از «کیت توسعه نرم‌افزار مصرف‌کننده» استفاده می‌کنند اکنون باید از کتابخانه Java 8 پشتیبانی کنند. برای دستورالعمل‌های به‌روزرسانی، https://developer.android.com/studio/write/java8-support را ببینید.

  • برنامه‌هایی که از Proguard یا Dexguard استفاده می‌کنند باید به R8 انتقال داده شوند. برای اطلاعات بیشتر، به https://developer.android.com/build/shrink-code مراجعه کنید.

  • برنامه‌هایی که از Consumer SDK استفاده می‌کنند باید شکرزدایی را فعال کنند. برای دریافت دستورالعمل‌ها، به https://developer.android.com/studio/write/java8-support#library-desugaring مراجعه کنید.

  • اگر روش ConsumerApi.initialize() زمانی فراخوانده شود که نمونه API ازقبل ایجاد شده باشد، اکنون استثنا قائل می‌شود. Task برگردانده‌شده توسط ConsumerApi.getInstance() باید برای تعیین اینکه آیا نمونه API ازقبل ایجاد شده است یا نه استفاده شود.

اعلان: منسوخ شدن میانای برنامه‌سازی کاربردی

  • کلاس‌های حاشیه‌نویسی Trip.TripStatus و Trip.TripType را منسوخ می‌کند، کلاس‌های حاشیه‌نویسی TripInfo.TripStatus و TripInfo.TripType را برای جایگزینی آن‌ها اضافه می‌کند.

    • به‌عنوان بخشی از این تغییر، TripModelCallback#onTripStatusUpdated(TripInfo tripInfo, @Trip.TripStatus int status) منسوخ شده است و TripModelCallback#onTripStatusUpdate(TripInfo tripInfo, @TripInfo.TripStatus int status) برای جایگزینی آن اضافه شده است.

    • به‌عنوان بخشی از این تغییر، TripInfo#getTripStatus() منسوخ شده است، TripInfo#getCurrentTripStatus() برای جایگزینی آن اضافه شده است.

    • به‌عنوان بخشی از این تغییر، TripInfo#getTripType() منسوخ شده است، TripInfo#getCurrentTripType() برای جایگزینی آن اضافه شده است.

  • کلاس Trip را منسوخ می‌کند.

تغییرات دیگر و رفع اشکالات

  • از درخواست جدیدترین رندرکننده «کیت توسعه نرم‌افزار Maps» پشتیبانی می‌کند. برای جزئیات، پردازنده جدید نقشه را ببینید.

  • از نسخه‌های v18.1.0(شامل) تا v19.0.0(غیرشامل) از محدوده «کیت توسعه نرم‌افزار Maps» پشتیبانی می‌کند.

  • خطای «مهلت مقرر تمام شده است» را برای ارتباطات داخلی بین «کیت توسعه نرم‌افزار» و پشتیبان Google برطرف می‌کند.

  • مشکل پردازش برای صفحه‌نمایش کوچک و حالت تصویردرتصویر را برطرف می‌کند.

راهنمای انتقال

‫۱.۹۹.۱ (۳۱ اوت ۲۰۲۳)

رفع اشکال‌ها

  • خرابی‌ای که هنگام ازبین رفتن فعالیت یا قطعه میزبان «کیت توسعه نرم‌افزار» رخ می‌دهد برطرف شد.

  • خرابی‌ای را که وقتی ابعاد MapView صفر است (ارتفاع یا عرض) رخ می‌دهد برطرف می‌کند.

  • خرابی‌ای که هنگام نمایش مکان خودرو روی چندخط مسیر رخ می‌داد برطرف شد.

بهبودها

  • از خراب شدن کیت توسعه نرم‌افزار هنگام جانبی‌بار کردن برنامه میزبان و نبودن منابع دیداری پیش‌فرض جلوگیری می‌کند.

‫۱.۹۹.۰ (۲۲ ژوئن ۲۰۲۳)

رفع اشکال‌ها

  • مشکل پردازش را برای صفحه‌نمایش‌های کوچک و حالت تصویردرتصویر برطرف می‌کند.

  • لرزش خودرو درحین هم‌رسانی سفر را برطرف می‌کند.

‫۱.۲.۱ (۷ ژوئن ۲۰۲۳)

رفع اشکال‌ها

  • اشکالی را برطرف می‌کند که باعث می‌شد خودرو درطول هم‌رسانی سفر سوسو بزند.

‫۱.۲.۰ (۲۱ نوامبر ۲۰۲۲)

رفع اشکال‌ها

  • اشکالی را برطرف می‌کند که باعث می‌شد ترافیک خالی در onTripActiveRouteTrafficUpdated گزارش شود.

ویژگی‌های جدید

  • «چندخطی‌های آگاه از ترافیک» اکنون به‌طور عمومی دردسترس است.

‫۱.۱.۲ (۲۷ اکتبر ۲۰۲۲)

رفع اشکال‌ها

  • اشکالی را برطرف می‌کند که باعث می‌شد چندخطی مسیر پس‌از شروع JourneySharingSession بیش‌از یک‌بار برای TripModel ناپدید شود.

اعلامیه: توقف پشتیبانی از Android 5 (۲۵ ژوئیه ۲۰۲۲)

برای نسخه 1.1.1 کیت توسعه نرم‌افزار خود، یک سال پشتیبانی اضافی برای برنامه‌هایی که در Android 5 اجرا می‌شوند، برای هر دو سطح API 21 و 22 ارائه می‌دهیم.

معنی این چیست:

  • «کیت توسعه نرم‌افزار مصرف‌کننده» که در برنامه‌های Android شما اجرا می‌شود تا ۳۰ ژوئن ۲۰۲۳ از حداقل Android 5 (سطح میانای برنامه‌سازی کاربردی ۲۱) پشتیبانی خواهد کرد.

  • پس‌از ۳۰ ژوئن ۲۰۲۳، فقط از سطح میانای برنامه‌سازی کاربردی Android نسخه ۲۳ و بالاتر پشتیبانی خواهیم کرد. به‌عبارت دیگر، پس‌از آن تاریخ، پشتیبانی از سطوح میانای برنامه‌سازی کاربردی Android 21 و 22 را در همه نسخه‌های کیت توسعه نرم‌افزار متوقف خواهیم کرد. این یعنی اشکالات مربوط به Android 21 یا 22 در هر نسخه کیت توسعه نرم‌افزار (ازجمله 4.x) برطرف نخواهد شد و تضمین نمی‌کنیم که کیت‌های توسعه نرم‌افزار به‌درستی عمل کنند.

نسخه ۱.۱.۱ (۲۵ ژوئیه ۲۰۲۲)

تغییر وابستگی

  • حداقل سطح ای‌پی‌آی Android پشتیبانی‌شده را به ۲۱ تنزل می‌دهد.

نسخه ۱.۱.۰ (۲۸ آوریل ۲۰۲۲)

  • بهبودهای داخلی.

نسخه ۱.۰.۱۹ (۱۷ مارس ۲۰۲۲)

رفع اشکال‌ها

  • نشت حافظه در کلاس ConsumerApi برطرف شد.

نسخه ۱.۰.۱۴ (۳۰ نوامبر ۲۰۲۱)

حداقل سطح Android API پشتیبانی‌شده اکنون ۲۳ است.

تغییرات میانای برنامه‌سازی کاربردی

  • تغییرات در کلاس‌های ConsumerTrip و ConsumerTripManager.

    • برخی‌از نام‌های روش‌ها را پاک‌سازی کردیم تا معنی آن‌ها واضح‌تر شود و با پلاتفرم iOS هم‌سو شوند.
  • تغییرات در ConsumerTripCallback، ConsumerTrip، و TripInfo.

    • برخی‌از نام‌های کلاس برای ایجاد برابری با iOS تغییر کرد. ‫TripModel،‏ TirpModelManager، و TripModelOptions را برای منسوخ کردن ConsumerTrip،‏ ConsumerTripManager، و ConsumerTripOptions معرفی کرد.

    • نام برخی‌از روش‌ها پاک‌سازی شد. نظرات JavaDoc را برای روش‌ها اصلاح یا اضافه کردیم تا معانی واضح‌تری منتقل کنیم.

    • مدیریت خطای بهبودیافته.

سفارشی‌سازی سبک‌پردازی

  • بسته‌بندی‌کننده‌های قدیمی منسوخ

    • ‫MarkerStyleOptions و PolylineStyleOptions منسوخ شدند و با MarkerOptions و PolylineOptions جایگزین شدند که هر دو با «کیت توسعه نرم‌افزار Maps» هم‌رسانی می‌شوند.

پایش خرابی

  • تشخیص و ثبت خرابی اضافه شد.

    • افزوده‌ای اضافه شده است تا به شما امکان دهد از این عملکرد انصراف دهید. این کار به‌عنوان بخشی از تلاش گسترده‌تر Geo برای پایش خرابی انجام شد.

تغییرات اصالت‌سنجی

  • روش‌های غیرضروری را از میاناهای «اصالت‌سنجی» بردارید.
    • پارامتر ServiceType را برداشت.

نسخه ۰.۹.۲۸ (۱۸ مه ۲۰۲۱)

تغییرات میانای برنامه‌سازی کاربردی

  • همه روش‌های ConsumerTripCallback برای استفاده از TripInfo به‌عنوان پارامتر به‌روزرسانی شد.
  • ConsumerTrip.isRefreshing() اضافه شد که نشان می‌دهد آیا ConsumerTrip به‌طور فعال خودش را با اطلاعات سفر جدید از Fleet Engine به‌روز می‌کند یا نه.
  • ‫ConsumerTripCallback.onTripRemainingRouteDistanceUpdated() اضافه شد.
  • ‫ConsumerTripCallback.onTripRemainingRouteUpdated() اضافه شد.
  • انواع برگشتی Guava (ImmutableSet،‏ ImmutableList) را با کلاس‌های معادل java.util جایگزین کنید.
  • تغییرات نام بسته:

    • com.google.android.libraries.ridesharing.common.AuthTokenContext -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenContext
    • com.google.android.libraries.ridesharing.common.AuthTokenFactory -> com.google.android.libraries.ridesharing.consumer.auth.AuthTokenFactory
    • com.google.android.libraries.ridesharing.common.FleetEngineServiceType -> com.google.android.libraries.ridesharing.consumer.auth.FleetEngineServiceType - com.google.android.libraries.ridesharing.common.model.Trip

                                  ->
                                                                  com.google.android.libraries.ridesharing.consumer.model.Trip
      
                                  -   com.google.android.libraries.ridesharing.common.model.Vehicle
      
                                                          ->
                                      com.google.android.libraries.ridesharing.consumer.model.Vehicle
      

تغییرات پیاده‌سازی

  • شرایط مسابقه‌ای که در آن کیت توسعه نرم‌افزار می‌توانست قبل‌از آماده شدن از تعامل با نقشه خراب شود برطرف شد.
  • کیت توسعه نرم‌افزار دیگر حاوی نسخه مبهم‌سازی‌نشده io.grpc نیست.
  • اشکال مربوط به چندخطی‌های ترافیک چشمک‌زن در برخی‌از دستگاه‌ها برطرف شد. بخش‌های ترافیک اکنون دارای پایان‌های گرد خواهند بود.

نسخه ۰.۹.۱۵ (۷ اکتبر ۲۰۲۰)

تغییرات میانای برنامه‌سازی کاربردی

  • این نسخه پخش چندخطی‌های آگاه از ترافیک را معرفی می‌کند. - TripInfo.getActiveRouteTraffic() و TripInfo.getRemainingRouteTraffic() اضافه شد.
    • ConsumerTripCallback.onTripActiveRouteTrafficUpdated() و ConsumerTripCallback.onTripRemainingRouteTrafficUpdated() اضافه شد تا نشان دهد ترافیک چه زمانی تغییر کرده است.
    • ‫PolylineStyleOptions برای سفارشی‌سازی ترافیک اضافه شد (setTrafficEnabled()، setTrafficColorNoData()، setTrafficColorNormal()، setTrafficColorSlow()، setTrafficColorTrafficJam()).
    • ‫PolylineStyleOptions.TRAFFIC_Z_INDEX_ADDITION لو رفت.
    • ‫TripWaypoint.getTrafficData() اضافه شد.
    • ‫TrafficData نوع داده اضافه شد.
    • ‫ConsumerController.hideAllSessions() اضافه شد. ‫ConsumerController.showSession() دیگر مقدار تهی را به‌عنوان آرگومان نمی‌پذیرد.

نسخه ۰.۹.۹ (۱۵ ژوئیه ۲۰۲۰)

تغییرات میانای برنامه‌سازی کاربردی

  • این تغییر بزرگی است که معماری واحدی را با رابطه‌ای واضح‌تر بین لایه فقط داده (برای نمونه، ConsumerTripManager) و لایه واسط کاربر (برای نمونه، JourneySharingSession) معرفی می‌کند. برای کسب اطلاعات درباره انتقال به معماری جدید، راهنمای انتقال واحدی‌سازی را ببینید. - شیء ConsumerTrip اکنون از ConsumerTripManager.getTrip() به‌دست می‌آید.
    • نام ConsumerTrip.unregisterCallback به ConsumerTrip.unregisterTripCallback تغییر کرد.
    • نام ConsumerTrip.isCallbackRegistered به ConsumerTrip.isTripCallbackRegistered تغییر کرد.
    • ‫ConsumerTrip.setConsumerTripOptions() و ConsumerTrip.getConsumerTripOptions() اضافه شد.
    • ConsumerTrip.setAutoRefreshInterval() برداشته شد.
  • میاناهای برنامه‌سازی کاربردی هم‌رسانی غیرسفر برداشته شد.
    • نقشه تراکم خودرو برداشته شد.
    • وضعیت پیش‌نمایش سفر برداشته شد.
    • وضعیت انتخاب تحویل حضوری برداشته شد.
    • وضعیت انتخاب توقف برداشته شد.
    • انواع نشانگر زیر برداشته شد: SELECTED_PICKUP_POINT، SUGGESTED_PICKUP_POINT، HIGHLIGHTED_PICKUP_POINT، و SELECTED_DROPOFF_POINT.
  • ‫OnConsumerMarkerClickCallback و ConsumerMapReadyCallback را از میانه‌ها به کلاس‌های انتزاعی تغییر داد.
  • ‫ConsumerController.getCameraUpdate()، ConsumerController.isAutoCameraEnabled()، و ConsumerController.enableAutoCamera() اضافه شد.
  • «دکمه اقدام شناور» سفارشی و روش‌های مرتبط با آن (ConsumerController.isMyLocationFabEnabled و ConsumerController.setMyLocationFabEnabled) برداشته شد.

تغییرات پیاده‌سازی

  • ‫ConsumerTripCallback، چه با LifecycleOwner ثبت شده باشد چه بدون آن، دیگر در TripStatus.COMPLETE یا TripStatus.CANCELED به‌طور خودکار ثبت آن لغو نمی‌شود.
  • اکنون AutoCamera به‌طور پیش‌فرض فعال است و هرگز خودش را دوباره فعال یا غیرفعال نمی‌کند. قبلاً، «دوربین خودکار» به‌طور خودکار در TripStatus.ARRIVED_AT_PICKUP دوباره فعال می‌شد و وقتی کاربر درطول هم‌رسانی سفر با نقشه تعامل برقرار می‌کرد، خودش را غیرفعال می‌کرد.
  • بهبودهای زیر در پویانمایی خودرو هم‌رسانی سفر ایجاد شده است:
    • پویانمایی هم‌رسانی سفر اکنون موقعیتی را مدیریت می‌کند که در آن خودرو ممکن است به‌طور قانونی در مسیری که قبلاً طی شده است به عقب حرکت کند.
    • اکنون وقتی خودرو به‌صورت الگوریتمی مناسب تشخیص داده شود، به‌جای میان‌یابی مسیر بین نقاط، به‌صورت خط مستقیم پویانمایی خواهد شد.
  • دیگر به اجازه‌های FINE_LOCATION نیازی نیست.

تغییرات دیگر

  • نسخه‌های وابستگی زیر به‌روزرسانی شد:
    • com.google.android.datatransport:transport-api:2.2.0
    • com.google.android.datatransport:transport-backend-cct:2.2.0
    • com.google.android.datatransport:transport-runtime:2.2.0

نسخه ۰.۹.۱ (۲۳ مارس ۲۰۲۰)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫TripInfo.getVehicleId()،‏ TripInfo.getNumberOfPassengers()، ‏ TripInfo.getIntermediateDestinationIndex()، ‏ TripInfo.getTripActiveRoute()، و TripInfo.getTripRemainingRoute() را اضافه کرد.
  • کلاس options اضافه شد که درطول مقداردهی اولیه ConsumerApi استفاده می‌شود و اجازه می‌دهد نشانی FleetEngine به‌صورت پویا تنظیم شود. اگر API با مقدار FleetEngine فراخوانی نشود، سعی می‌کند آن را از مانیفست Android واکشی کند یا درغیراین‌صورت به مقدار پیش‌فرض برمی‌گردد.

بهبودها

  • وقتی وضعیت سفر ARRIVED_AT_PICKUP باشد، چندخطی مسیر نمایش داده نمی‌شود.
  • ردیابی خودرو خارج از مسیر بهبود یافته است (به DriverSDK 1.15 نیاز دارد):
    • وقتی خودرو از محل پیک‌آپ عبور می‌کند، ردیابی خودرو خودرو را به مسیر نمی‌چسباند.
    • ردیابی خودرو امکان نمایش خودرو در خارج از جاده را فراهم می‌کند؛ برای مثال، در پارکینگ‌های بدون نقشه.
  • اکنون نماد خودرو زمانی به‌روزرسانی می‌شود که مقصد راننده با مقصد در Fleet Engine مطابقت نداشته باشد.

نسخه ۰.۸.۶ (۱۶ دسامبر ۲۰۱۹)

تغییرات میانای برنامه‌سازی کاربردی

  • ‫TripInfo.getVehicleLocation() اضافه شد.

  • ‫ConsumerMapView دیگر نهایی نیست.

تغییرات پیاده‌سازی

  • مسافت باقی‌مانده از بخش فعال اکنون بااستفاده از مسافت سرور (گزارش‌شده توسط راننده + مسیر ثابت درصورت وجود) به‌جای چسباندن محلی محاسبه می‌شود. این تغییر باعث می‌شود مقادیر فاصله باقی‌مانده دقیق‌تر شود.

تغییرات دیگر

  • وابستگی‌های جدید لازم است. برای جزئیات، فایل pom .را ببینید.

    • com.google.android.datatransport:transport-api:2.0.0
    • com.google.android.datatransport:transport-backend-cct:2.0.2
    • com.google.android.datatransport:transport-runtime:2.0.0
  • گزارش‌هایی برای تأخیر درخواست سفر اضافه شد.

  • گزارش‌های مربوط به خطاهای پاسخ سفر اضافه شد.

یادداشت‌ها

  • از نسخه ۰.۸.۱، «کیت توسعه نرم‌افزار مصرف‌کننده» برای Android به‌صورت بایگانی zip گواهینامه‌دار ارائه می‌شود. برای کسب اطلاعات درباره نحوه حذف Jetifier، به Jetifier: حالت معکوس مراجعه کنید.

نسخه ۰.۸.۱ (۱۳ سپتامبر ۲۰۱۹)

ویژگی‌های جدید

تغییرات میانای برنامه‌سازی کاربردی

  • ‫ConsumerController.disableAutoCamera() به‌عنوان تابع معکوس به centerMapForState() اضافه شد.

  • ‫VehicleLocation.getUpdateTime() اکنون «بلندی» را برمی‌گرداند که نشان‌دهنده مهر زمان (به میلی‌ثانیه) است.

  • رابط AuthTokenFactory را ساده کردیم تا یک روش واحد برای تولید کد ارائه شود. ‫AuthTokenFactory از میانای به کلاس انتزاعی تغییر کرد تا سازگاری با نسخه قدیمی در Java7 فعال شود. این تغییر با نسخه‌های قبلی سازگار است، اما روش‌های قدیمی برای تولید رمز خدمات تکی منسوخ شده‌اند و درنهایت برداشته خواهند شد.

تغییرات پیاده‌سازی

  • دارایی‌ها اکنون در مرکز نماد قرار دارند و انحراف سایه حذف شده است.

  • به‌جای انتظار برای وضعیت «سفر» تحت پایش، از setState تا JOURNEY_SHARING onStartTripMonitoring() را انتخاب کنید.

  • همیشه داده‌ها را برای اولین به‌روزرسانی داده‌های سفر برمی‌گرداند، حتی زمانی که داده‌های سفر همگام‌سازی نشده باشند.

  • Android Map Utils به‌عنوان وابستگی ارائه‌شده اضافه شد.

رفع اشکال‌ها

  • نحو صادرات proguard شکسته برای grpc keep اصلاح شد.

نسخه ۰.۷.۰ (۷ اوت ۲۰۱۹)

ویژگی‌های جدید

  • پشتیبانی از چند مقصد برای «هم‌رسانی سفر».

تغییرات میانای برنامه‌سازی کاربردی

  • روش‌های جدید برای ConsumerTripCallback.

    • onTripIntermediateDestinationsUpdated().
    • onTripETAToNextTripWaypointUpdated().
  • ‫ConsumerController روش جدید.

    • getIntermediateDestinations().
    • setIntermediateDestinations(List<TerminalLocation> intermediateDestinations).
  • ‫TripStatuses جدید.

    • TripStatus.ENROUTE_TO_INTERMEDIATE_DESTINATION.
    • TripStatus.ARRIVED_AT_INTERMEDIATE_DESTINATION.
  • ‫TripWaypoint دریافت‌کننده جدید.

    • getETAMillis().
    • getDistanceMeters().
  • کلاس TripInfo اضافه شد.

    • می‌توانید TripInfo را برای سفر فعال با ConsumerTripManager.getActiveTripInfo() دریافت کنید.
  • ‫WaypointType.INTERMEDIATE_DESTINATION اضافه شد.

  • MarkerType.TRIP_INTERMEDIATE_DESTINATION اضافه شد.

  • ConsumerMapState.JOURNEY_SHARING از ادغام ConsumerMapStates ENROUTE_TO_PICKUP، ARRIVED_AT_PICKUP، ENROUTE_TO_DROPOFF، و COMPLETE ایجاد شد.

    • StateChangeCallbacks به‌روزرسانی شد.

    • ‫onStateJourneySharing() اضافه شد.

    • ‫onStateWaitingForPickup()، onStateDriverArrived()، onStateEnroute()، و onStateEndofTrip() برداشته شدند.

رفع اشکال‌ها

  • اشکالی که باعث می‌شد وقتی پایش سفر در میان سفر فعال شروع می‌شود (نه در ابتدای مسیر)، مسیر به مکان خودرو محدود نشود برطرف شد.

  • اشکالی که در آن فراخوانی‌های برگشتی سفر برای شنوندگان ثبت‌شده در Tripmanager پس‌از اینکه TripManager داده‌های سفر را واکشی کرده بود فراخوانی نمی‌شد برطرف شد.

  • اکنون زوم دوربین فقط شامل مسیر فعال و ایستگاه بین راهی سفر بعدی (ایستگاه بین راهی متعلق به سفر) می‌شود. حتی اگر بخش باقی‌مانده قابل‌مشاهده باشد، بزرگ‌نمایی هرگز آن را دربرنخواهد گرفت. قبلاً، وقتی خودرو در مسیر سوار کردن مسافر بود یا به محل سوار کردن مسافر می‌رسید، نقطه پیاده کردن مسافر در بزرگ‌نمایی گنجانده می‌شد. این دیگر درست نیست.

بهبودها

  • اولین ایستگاه بازرسی باقی‌مانده را با داده‌های «راننده» تکمیل کنید (فهرست ایستگاه‌های بازرسی باقی‌مانده از ConsumerTripCallback.onTripRemainingWaypointsUpdated و TripInfo.getRemainingWaypoints() برگردانده می‌شود.

  • وقتی «زمان تخمینی رسیدن» به اولین ایستگاه بین راهی در فهرست تغییر می‌کند، همه «زمان‌های تخمینی رسیدن» ایستگاه‌های بین راهی باقی‌مانده را به‌روزرسانی کنید.

  • فقط وقتی راننده به محل سوار کردن می‌رسد، دوربین خودکار را به‌اجبار دوباره فعال کنید. قبلاً، دوربین خودکار با هر تغییر وضعیت سفر به حالت فعال بازنشانی می‌شد. «دوربین خودکار» همچنان به‌طور پیش‌فرض فعال است. اگر سفر فعال جدیدی بدون تماس جدید با startTripMonitoring() تنظیم شود، «دوربین خودکار» دوباره فعال نخواهد شد.

نسخه ۰.۶.۱ (۲۶ ژوئن ۲۰۱۹)

ویژگی‌های جدید

  • پشتیبانی از خودرو مشترک برای هم‌رسانی سفر.

تغییرات میانای برنامه‌سازی کاربردی

  • ‫ConsumerController.getConsumerMapStyle() اکنون ConsumerMapStyle را به‌جای Task<ConsumerMapStyle> برمی‌گرداند.

  • ‫PolylineStyle.setZIndex() اضافه شد.

رفع اشکال‌ها

  • پویانمایی مسیر اکنون فقط زمانی اتفاق می‌افتد که بخش مسیر همگام‌سازی شده باشد، که منجر به بهبود تجربه کاربری می‌شود.

  • «لرزش» خودرو درطول درون‌یابی پویانمایی وقتی به‌روزرسانی‌های مکان راننده نزدیک به هم هستند برطرف شد.

  • اشکالی برطرف شد که در آن وقتی پایش سفر در میان سفر فعال شروع می‌شد، خودرو به‌جای شروع از به‌روزترین مکانش، از ابتدای مسیر شروع می‌کرد.

  • وقتی چندخطی مسیر فعال با مسیر باقی‌مانده هم‌پوشانی دارد، آن را بالای مسیر باقی‌مانده نمایش دهید.

بهبودها

  • اکنون کلاس gRPC Status را با روش‌های غیرمبهم نشان دهید.

نسخه ۰.۵.۱.۰۱ (۱۷ مه ۲۰۱۹)

ویژگی‌های جدید

  • پشتیبانی پشت سر هم برای «هم‌رسانی مسیر».

تغییرات میانای برنامه‌سازی کاربردی

  • کلاس جدید ConsumerController.

PolylineType

مقدار قدیمی مقدار جدید
TRIP_PREVIEW_AUTO_ROUTE PREVIEW_AUTO_ROUTE
TRIP_PREVIEW_TAXI_ROUTE PREVIEW_TAXI_ROUTE
TRIP_PREVIEW_TRUCK_ROUTE PREVIEW_TRUCK_ROUTE
TRIP_PREVIEW_TWO_WHEELER_ROUTE PREVIEW_TWO_WHEELER_ROUTE
TRIP_ROUTE ACTIVE_ROUTE
REMAINING_ROUTE

ConsumerTripCallback

مقدار قبلی مقدار جدید
onTripRouteUpdated onTripActiveRouteUpdated
onTripRemainingDistanceUpdated onTripActiveRouteRemainingDistanceUpdated
onTripRemainingWaypointsUpdated()

ConsumerController

  • اکنون می‌توانید برای وضعیت‌ها بدون وارد کردن وضعیت، تماس برگشتی تنظیم کنید.
روش پاسخ تماس
startPickupSelection setPickupSelectionCallback
startDropoffSelection setDropoffSelectionCallback
startTripPreview setTripPreviewSelectionCallback
  • ‫ConsumerController.setLanguage(String languageCode) به شما امکان می‌دهد زبان استفاده‌شده در تماس‌های FleetEngine را تنظیم کنید (برای مثال، برای شرح‌های نقطه توقف).

بهبودها

  • وضعیت انتخاب محل پیاده کردن اکنون سنجاقک قابل‌کشیدنی دارد.
  • پویانمایی دوربین در حالت INITIALIZE برداشته شد.
  • ‫ManagedChannelBuilder با AndroidChannelBuilder جایگزین شد.