27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
İzleme durumu
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
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:
android.telecom.InCallService
'ü uzatın.
public class ClusterInCallService extends InCallService {
...
- Hizmeti
AndroidManifest.xml
'e kaydedin.
<service android:name="com.android.car.cluster.sample.ClusterInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE"
android:exported="false">
- 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);
}
- 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) {...}
}
- İ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
.
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:
MediaSessionManager
kullanın ve birincil denetleyiciyi (#getActiveSessions(null)[0]
) alın.
- Geri aramaları kaydedin (
MediaController#Callback
).
- Etkin oturumda abone olma özelliği değişti
MediaSessionManager#addOnActiveSessionsChangedListener(...)
.
Ayrıntılar için bkz.:
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# Monitor status\n\nA typical instrument cluster updates driving, call, and media information whenever new data\ncomes in. Android provides the following API to enable an OEM's instrument cluster to receive\nup-to-date status easily.\n\nDriving status\n--------------\n\nDriving direction events are sent while navigation is ongoing. The file\n`packages/services/Car/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java`\ncontains abstract methods for a navigation app renderer in the instrument cluster.\n\nIn an extended `InstrumentClusterRenderingService`, these methods are as follows: \n\n```transact-sql\npublic class MyClusterRenderingService extends\nInstrumentClusterRenderingService {\n ...\n @Override protected NavigationRenderer getNavigationRenderer() {\n return new NavigationRenderer() {\n @Override CarNavigationInstrumentCluster getNavigationProperties() {...}\n @Override void onStartNavigation() {...}\n @Override void onStopNavigation() {...}\n @Override void onNextTurnChanged(int event, String road, int turnAngle,\n int turnNumber, Bitmap image, int turnSide) {...}\n @Override void onNextTurnDistanceChanged(int distanceMeters, int\n timeSeconds) {...}\n };\n }\n}\n```\n\nYou can add custom actions (such as rendering) to these methods to display desired\ninformation.\n\nCall status\n-----------\n\nTo monitor call status, use the following steps:\n\n1. Extend `android.telecom.InCallService`. \n\n ```gdscript\n public class ClusterInCallService extends InCallService {\n ...\n ```\n2. Register the service in `AndroidManifest.xml`. \n\n ```gdscript\n \u003cservice android:name=\"com.android.car.cluster.sample.ClusterInCallService\"\n android:permission=\"android.permission.BIND_INCALL_SERVICE\"\n android:exported=\"false\"\u003e\n ```\n3. Override onCallAdded and onCallRemoved. \n\n ```verilog\n public void onCallAdded(Call call) {\n ...\n call.registerCallback(mPhoneCallback);\n mPhoneCallback.onStateChanged(call, call.getState());\n }\n public void onCallRemoved(Call call) {\n ...\n call.unregisterCallback(mPhoneCallback);\n }\n ```\n4. Register callbacks to receive call status change events (`Call#registerCallback`). \n\n ```gdscript\n private static class PhoneCallback extends Callback {\n ...\n public void onStateChanged(Call call, int state) {...}\n }\n ```\n5. Use content providers to pull contact information: \n `ContactsContract.PhoneLookup, ContactsContract.Contacts#openContactPhotoInputStream`).\n\nFor call status monitor sample code, see: \n\n`packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/ClusterInCallService.java`\n\nFor content provider sample code, see: \n\n`packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/TelecomUtils.java`.\n\nMedia status\n------------\n\nYou can configure the system to update the media status when it receive events related to a\nchange in MediaMetadata (such as album or song title or cover image) or playback state (buffering,\npause, play, and stop). To update the media status:\n\n1. Use `MediaSessionManager` and get primary controller (`#getActiveSessions(null)[0]`).\n2. Register callbacks (`MediaController#Callback`).\n3. Subscribe to on active session changed `MediaSessionManager#addOnActiveSessionsChangedListener(...)`.\n\nFor details, see:\n\n- [packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/MediaStateMonitor.java](https://android.googlesource.com/platform/packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/MediaStateMonitor.java)\n- [packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java](https://android.googlesource.com/platform/packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java)"]]