İzleme durumu

Tipik bir gösterge paneli, yeni veri geldiğinde sürüş, arama ve medya bilgilerini günceller. Android, OEM'lerin gösterge panelinin güncel durumu kolayca alabilmesi için aşağıdaki API'yi sağlar.

Sürüş durumu

Sürüş yönleri etkinlikleri, navigasyon devam ederken gönderilir. packages/services/Car/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java dosyası, gösterge grubundaki bir navigasyon uygulaması oluşturma aracı için soyut yöntemler içerir.

Genişletilmiş InstrumentClusterRenderingService'te bu yöntemler aşağıdaki gibidir:

public class MyClusterRenderingService extends
InstrumentClusterRenderingService {
    ...
    @Override protected NavigationRenderer getNavigationRenderer() {
        return new NavigationRenderer() {
            @Override CarNavigationInstrumentCluster getNavigationProperties() {...}
            @Override void onStartNavigation() {...}
            @Override void onStopNavigation() {...}
            @Override void onNextTurnChanged(int event, String road, int turnAngle,
            int turnNumber, Bitmap image, int turnSide) {...}
            @Override void onNextTurnDistanceChanged(int distanceMeters, int
            timeSeconds) {...}
        };
    }
}

İstediğiniz bilgileri görüntülemek için bu yöntemlere özel işlemler (ör. oluşturma) ekleyebilirsiniz.

Arama durumu

Arama durumunu izlemek için aşağıdaki adımları uygulayın:

  1. android.telecom.InCallService'ü uzatın.
    public class ClusterInCallService extends InCallService {
    ...
  2. Hizmeti AndroidManifest.xml'e kaydedin.
    <service android:name="com.android.car.cluster.sample.ClusterInCallService"
        android:permission="android.permission.BIND_INCALL_SERVICE"
        android:exported="false">
  3. onCallAdded ve onCallRemoved yöntemlerini geçersiz kılın.
    public void onCallAdded(Call call) {
        ...
        call.registerCallback(mPhoneCallback);
        mPhoneCallback.onStateChanged(call, call.getState());
    }
    public void onCallRemoved(Call call) {
        ...
        call.unregisterCallback(mPhoneCallback);
    }
  4. Arama durumu değişikliği etkinliklerini (Call#registerCallback) almak için geri çağırma işlevleri kaydedin.
    private static class PhoneCallback extends Callback {
        ...
        public void onStateChanged(Call call, int state) {...}
    }
  5. İletişim bilgilerini almak için içerik sağlayıcıları kullanın:
    ContactsContract.PhoneLookup, ContactsContract.Contacts#openContactPhotoInputStream).

Çağrı durumu izleyici örnek kodu için:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/ClusterInCallService.java

İçerik sağlayıcı örnek kodu için:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/TelecomUtils.java.

Medya durumu

Sistemi, MediaMetadata'daki (ör. albüm veya şarkı başlığı ya da kapak resmi) bir değişiklik veya oynatma durumunda (arabelleğe alma, duraklatma, oynatma ve durdurma) bir değişiklikle ilgili etkinlik aldığında medya durumunu güncelleyecek şekilde yapılandırabilirsiniz. Medya durumunu güncellemek için:

  1. MediaSessionManager kullanın ve birincil denetleyiciyi (#getActiveSessions(null)[0]) alın.
  2. Geri aramaları kaydedin (MediaController#Callback).
  3. Etkin oturumda abone olma özelliği değişti MediaSessionManager#addOnActiveSessionsChangedListener(...).

Ayrıntılar için bkz.: