یک برنامه نقطه مورد علاقه بسازید

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

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

برنامه شما باید دسته بندی برنامه ماشین androidx.car.app.category.POI را در فیلتر intent مربوط به CarAppService خود اعلام کند.

مثال زیر نحوه تعریف دسته بندی برنامه را نشان می‌دهد:

<application>
    ...
   <service
       ...
        android:name=".MyCarAppService"
        android:exported="true">
      <intent-filter>
        <action android:name="androidx.car.app.CarAppService" />
        <category android:name="androidx.car.app.category.POI"/>
      </intent-filter>
    </service>
    ...
<application>

دسترسی به الگوهای نقشه

برنامه‌های POI می‌توانند به PlaceListMapTemplate و MapWithContentTemplate دسترسی داشته باشند.

الگوی PlaceListMapTemplate به طور خاص برای نمایش لیستی از POIها در کنار نقشه‌ای که توسط میزبان رندر می‌شود، طراحی شده است.

از MapWithContentTemplate می‌توان برای نمایش لیست‌ها و انواع دیگر محتوا در کنار نقشه‌ای که توسط برنامه شما رندر می‌شود، استفاده کرد. برای جزئیات بیشتر در مورد استفاده از این الگو، به Draw maps مراجعه کنید.

برای دسترسی به این قالب‌ها، برنامه شما باید مجوز androidx.car.app.MAP_TEMPLATES را در فایل AndroidManifest.xml خود اعلام کند:

<manifest ...>
  ...
  <uses-permission android:name="androidx.car.app.MAP_TEMPLATES"/>
  ...
</manifest>

محتوای PlaceListMapTemplate را به‌روزرسانی کنید

شما می‌توانید به درایورها اجازه دهید هنگام مرور لیست مکان‌های ساخته شده با PlaceListMapTemplate ، با لمس یک دکمه، محتوا را به‌روزرسانی کنند. متد onContentRefreshRequested از رابط OnContentRefreshListener را پیاده‌سازی کنید و از PlaceListMapTemplate.Builder.setOnContentRefreshListener برای تنظیم شنونده روی قالب جهت فعال‌سازی به‌روزرسانی لیست استفاده کنید.

قطعه کد زیر نحوه تنظیم شنونده (listener) روی قالب را نشان می‌دهد:

return PlaceListMapTemplate.Builder()
    // ...
    .setOnContentRefreshListener {
        // Execute any desired logic
        // ...
        // Then call invalidate() so onGetTemplate() is called again
        invalidate()
    }
    .build()

دکمه‌ی refresh فقط در صورتی در هدر PlaceListMapTemplate نمایش داده می‌شود که listener دارای مقداری باشد.

وقتی کاربر روی دکمه‌ی refresh کلیک می‌کند، متد onContentRefreshRequested از پیاده‌سازی OnContentRefreshListener شما فراخوانی می‌شود. درون onContentRefreshRequested ، متد Screen.invalidate را فراخوانی کنید. سپس میزبان، متد Screen.onGetTemplate برنامه‌ی شما را فراخوانی می‌کند تا template را با محتوای refresh شده بازیابی کند. برای اطلاعات بیشتر در مورد refresh کردن templateها، به بخش Refresh the contents of a template مراجعه کنید. تا زمانی که template بعدی که توسط onGetTemplate برگردانده می‌شود از همان نوع باشد، به عنوان refresh محاسبه می‌شود و در سهمیه‌ی template محاسبه نمی‌شود.

با استفاده از App Actions با دستیار گوگل ادغام شوید

با استفاده از دستیار گوگل، برنامه POI خود را به صورت صوتی فعال کنید تا کاربران بتوانند با پرسیدن چیزهایی مانند «هی گوگل، ایستگاه‌های شارژ نزدیک را در ExampleApp پیدا کن» نقاط مورد علاقه خود را جستجو کنند. برای دستورالعمل‌های دقیق، به App Actions for Cars مراجعه کنید.