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

जब भी नया डेटा आता है तो एक विशिष्ट इंस्ट्रूमेंट क्लस्टर ड्राइविंग, कॉल और मीडिया जानकारी को अपडेट करता है। एंड्रॉइड 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

मीडिया स्थिति

मीडियामेटाडेटा (जैसे एल्बम या गीत शीर्षक या कवर छवि) या प्लेबैक स्थिति (बफ़रिंग, पॉज़, प्ले और स्टॉप) में परिवर्तन से संबंधित ईवेंट प्राप्त होने पर आप मीडिया स्थिति को अपडेट करने के लिए सिस्टम को कॉन्फ़िगर कर सकते हैं। मीडिया स्थिति अपडेट करने के लिए:

  1. MediaSessionManager उपयोग करें और प्राथमिक नियंत्रक प्राप्त करें ( #getActiveSessions(null)[0] )।
  2. कॉलबैक पंजीकृत करें ( MediaController#Callback )।
  3. सक्रिय सत्र में परिवर्तित MediaSessionManager#addOnActiveSessionsChangedListener(...) की सदस्यता लें।

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