حالة المراقبة

تعمل مجموعة الأدوات النموذجية على تحديث معلومات القيادة والمكالمات والوسائط عند توفّر بيانات جديدة. الدور. يوفّر 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. تجاوز onCallAdd و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(...)

لمعرفة التفاصيل، راجع: