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

जब भी नया डेटा मिलता है, तो सामान्य इंस्ट्रुमेंट क्लस्टर में ड्राइविंग, कॉल, और मीडिया की जानकारी अपडेट होती है आ जाता है. OEM के इंस्ट्रुमेंट क्लस्टर को पाने के लिए, Android ये एपीआई उपलब्ध कराता है अप-टू-डेट होते हैं.

ड्राइविंग की स्थिति

नेविगेशन की प्रोसेस जारी रहने के दौरान, ड्राइविंग दिशा-निर्देश इवेंट भेजे जाते हैं. फ़ाइल 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. onCall added और 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(...).

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