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

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

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

برنامه شما باید دسته برنامه ماشین androidx.car.app.category.POI را در فیلتر هدف 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 برای تنظیم شنونده روی الگو برای فعال کردن بازخوانی لیست استفاده کنید.

قطعه زیر نحوه تنظیم شنونده در قالب را نشان می دهد:

کاتلین

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

جاوا

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

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

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

با استفاده از App Actions با Google Assistant یکپارچه شوید

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