मॉनिटर की स्थिति

आम तौर पर, इंस्ट्रूमेंट क्लस्टर में नया डेटा आने पर, ड्राइविंग, कॉल, और मीडिया की जानकारी अपडेट हो जाती है. Android, यहां दिए गए एपीआई उपलब्ध कराता है, ताकि 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) {...}
        };
    }
}

अपनी पसंद की जानकारी दिखाने के लिए, इन तरीकों में कस्टम कार्रवाइयां (जैसे, रेंडरिंग) जोड़ी जा सकती हैं.

कॉल की स्थिति

कॉल की स्थिति पर नज़र रखने के लिए, यह तरीका अपनाएं:

  1. android.telecom.InCallService को बढ़ाएं.
    public class ClusterInCallService extends InCallService {
    ...
  2. AndroidManifest.xml में सेवा रजिस्टर करें.
    <service android:name="com.android.car.cluster.sample.ClusterInCallService"
        android:permission="android.permission.BIND_INCALL_SERVICE"
        android:exported="false">
  3. onCallAdded और onCallRemoved को बदलें.
    public void onCallAdded(Call call) {
        ...
        call.registerCallback(mPhoneCallback);
        mPhoneCallback.onStateChanged(call, call.getState());
    }
    public void onCallRemoved(Call call) {
        ...
        call.unregisterCallback(mPhoneCallback);
    }
  4. कॉल के स्टेटस में हुए बदलाव के इवेंट पाने के लिए, कॉलबैक रजिस्टर करें (Call#registerCallback).
    private static class PhoneCallback extends Callback {
        ...
        public void onStateChanged(Call call, int state) {...}
    }
  5. संपर्क जानकारी पाने के लिए, कॉन्टेंट देने वाली कंपनियों का इस्तेमाल करें:
    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 (जैसे, एल्बम या गाने का टाइटल या कवर इमेज) या वीडियो चलाने की स्थिति (बफ़र करना, रोकना, चलाना, और बंद करना) में बदलाव होने पर, सिस्टम को मीडिया की स्थिति अपडेट करने के लिए कॉन्फ़िगर किया जा सकता है. मीडिया की स्थिति अपडेट करने के लिए:

  1. MediaSessionManager का इस्तेमाल करके, प्राइमरी कंट्रोलर (#getActiveSessions(null)[0]) पर जाएं.
  2. कॉलबैक रजिस्टर करें (MediaController#Callback).
  3. चालू सेशन के लिए सदस्यता लें को बदला गया MediaSessionManager#addOnActiveSessionsChangedListener(...).

विवरण के लिए, देखें: