Önemli yer uygulaması oluşturma

Bu kılavuzda, önemli yer (ÖY) uygulamanızın işlevlerini uygulamak için kullanabileceğiniz Araba Uygulaması Kitaplığı'nın farklı özellikleri açıklanmaktadır.

Manifest'inizde kategori desteğini beyan edin

Uygulamanızın, CarAppService intent filtresinde androidx.car.app.category.POI araba uygulaması kategorisini beyan etmesi gerekiyor.

Aşağıdaki örnekte, uygulama kategorisinin nasıl beyan edileceği gösterilmektedir:

<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>

Harita şablonlarına erişme

Önemli yer uygulamaları, PlaceListMapTemplate ve MapWithContentTemplate bölümlerine erişebilir.

PlaceListMapTemplate, ÖY'lerin listesini, ana makine tarafından oluşturulan bir haritanın yanında göstermek üzere özel olarak tasarlanmıştır.

MapWithContentTemplate, listeleri ve diğer içerik türlerini, uygulamanız tarafından oluşturulan bir haritanın yanında görüntülemek için kullanılabilir. Bu şablonu kullanmayla ilgili daha fazla ayrıntı için Harita çizme bölümüne bakın.

Bu şablonlara erişmek için uygulamanızın AndroidManifest.xml dosyasında androidx.car.app.MAP_TEMPLATES iznini beyan etmesi gerekiyor:

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

PlaceListMapTemplate içeriğini yenile

Sürücülerin PlaceListMapTemplate ile oluşturulan yerlerin listelerine göz atarken tek bir dokunuşla içeriği yenilemelerini sağlayabilirsiniz. OnContentRefreshListener arayüzünün onContentRefreshRequested yöntemini uygulayın ve şablonda işleyiciyi liste yenilemeyi etkinleştirecek şekilde ayarlamak için PlaceListMapTemplate.Builder.setOnContentRefreshListener kullanın.

Aşağıdaki snippet'te, şablonda işleyicinin nasıl ayarlanacağı gösterilmektedir:

Kotlin

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

Java

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

Yenile düğmesi yalnızca işleyicinin bir değeri varsa PlaceListMapTemplate öğesinin başlığında gösterilir.

Kullanıcı yenile düğmesini tıkladığında OnContentRefreshListener uygulamanızın onContentRefreshRequested yöntemi çağrılır. onContentRefreshRequested içinde Screen.invalidate yöntemini çağırın. Daha sonra ana makine, yenilenmiş içerikle şablonu almak için uygulamanızın Screen.onGetTemplate yöntemini tekrar çağırır. Şablonları yenileme hakkında daha fazla bilgi için Şablonun içeriğini yenileme bölümüne bakın. onGetTemplate tarafından döndürülen bir sonraki şablon aynı türde olduğu sürece bu yenileme olarak sayılır ve şablon kotasına dahil edilmez.

Uygulama İşlemleri'ni kullanarak Google Asistan ile entegrasyon

Kullanıcıların önemli yerleri aramalarına olanak tanımak için "Ok Google, exampleApp'te yakındaki şarj istasyonlarını bul" gibi sorular sorarak ÖY uygulamanızı Asistan'ı kullanarak Voice'u etkinleştirin. Ayrıntılı talimatlar için Arabalar için Uygulama İşlemleri başlıklı makaleyi inceleyin.