אשכול מכשירים טיפוסי מעדכן מידע על נהיגה, שיחות ומדיה בכל פעם שמגיעים נתונים חדשים. אנדרואיד מספקת את ה-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
.
סטטוס מדיה
אתה יכול להגדיר את המערכת לעדכן את סטטוס המדיה כאשר היא מקבלת אירועים הקשורים לשינוי ב-Medadata (כגון כותרת האלבום או השיר או תמונת השער) או מצב השמעה (חציצה, השהייה, הפעלה ועצירה). כדי לעדכן את סטטוס המדיה:
- השתמש
MediaSessionManager
וקבל את הבקר הראשי (#getActiveSessions(null)[0]
). - רישום התקשרויות חוזרות (
MediaController#Callback
). - הירשם להפעלה פעילה השתנה
MediaSessionManager#addOnActiveSessionsChangedListener(...)
.
לפרטים, ראה:
-
packages/services/Car/+/android-8.1.0_r9/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/MediaStateMonitor.java
-
packages/services/Car/tests/InstrumentClusterRendererSample/src/com/android/car/cluster/sample/InstrumentClusterController.java