از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
وضعیت مانیتور، وضعیت مانیتور
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
یک دسته ابزار معمولی هر زمان که داده های جدیدی وارد می شود، اطلاعات رانندگی، تماس و رسانه را به روز می کند. Android API زیر را برای فعال کردن دسته ابزار OEM ارائه می دهد تا وضعیت به روز را به راحتی دریافت کند.
وضعیت رانندگی
رویدادهای جهت رانندگی در حالی که ناوبری در حال انجام است ارسال می شود. packages/services/Car/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
حاوی روشهای انتزاعی برای رندر برنامه ناوبری در خوشه ابزار است.
در یک InstrumentClusterRenderingService
توسعه یافته، این روش ها به شرح زیر است:
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) {...}
};
}
}
برای نمایش اطلاعات مورد نظر می توانید اقدامات سفارشی (مانند رندر) را به این روش ها اضافه کنید.
وضعیت تماس
برای نظارت بر وضعیت تماس، از مراحل زیر استفاده کنید:
-
android.telecom.InCallService
را گسترش دهید. public class ClusterInCallService extends InCallService {
...
- سرویس را در
AndroidManifest.xml
ثبت کنید. <service android:name="com.android.car.cluster.sample.ClusterInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE"
android:exported="false">
- onCallAdded و onCallRemoved را لغو کنید.
public void onCallAdded(Call call) {
...
call.registerCallback(mPhoneCallback);
mPhoneCallback.onStateChanged(call, call.getState());
}
public void onCallRemoved(Call call) {
...
call.unregisterCallback(mPhoneCallback);
}
- برای دریافت رویدادهای تغییر وضعیت تماس، تماسهای برگشتی را ثبت کنید (
Call#registerCallback
). private static class PhoneCallback extends Callback {
...
public void onStateChanged(Call call, int state) {...}
}
- از ارائه دهندگان محتوا برای استخراج اطلاعات تماس استفاده کنید:
ContactsContract.PhoneLookup, ContactsContract.Contacts#openContactPhotoInputStream
).
برای مشاهده کد نمونه مانیتور وضعیت تماس، نگاه کنید به:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/ClusterInCallService.java
برای نمونه کد ارائهدهنده محتوا، نگاه کنید به:
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/TelecomUtils.java
.
میتوانید سیستم را طوری پیکربندی کنید که وقتی رویدادهای مربوط به تغییر در MediaMetadata (مانند آلبوم یا عنوان آهنگ یا تصویر جلد) یا وضعیت پخش (بافر، مکث، پخش و توقف) را دریافت میکند، وضعیت رسانه را بهروزرسانی کند. برای به روز رسانی وضعیت رسانه:
- از
MediaSessionManager
استفاده کنید و کنترلر اصلی را دریافت کنید ( #getActiveSessions(null)[0]
). - ثبت تماس های برگشتی (
MediaController#Callback
). - اشتراک در جلسه فعال تغییر کرد
MediaSessionManager#addOnActiveSessionsChangedListener(...)
.
برای جزئیات، نگاه کنید به:
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی."],[],[],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)"]]