تعمل مجموعة الأدوات النموذجية على تحديث معلومات القيادة والمكالمات والوسائط عند توفّر بيانات جديدة. الدور. يوفّر 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) {...} }; } }
ويمكنك إضافة إجراءات مخصصة (مثل العرض) إلى هذه الطرق لعرض المحتوى المطلوب المعلومات.
حالة المكالمة
لمراقبة حالة المكالمة، اتّبِع الخطوات التالية:
- تمديد مدة
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">
- تجاوز onCallAdd و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
حالة الوسائط
يمكنك ضبط النظام على تعديل حالة الوسائط عندما يتلقّى أحداثًا ذات صلة بـ تغيير في MediaMetadata (مثل عنوان الألبوم أو الأغنية أو صورة الغلاف) أو حالة التشغيل (التخزين المؤقت الإيقاف المؤقت والتشغيل والإيقاف). لتعديل حالة الوسائط:
- استخدام "
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