يتم تحديد VIA النشط عن طريق
ManageAssistActivity
في "إعدادات السيارة" (CarSettings). يتم تشغيل هذا المسار من خلال تطبيق "PackageInstaller
" كجزء من هذه العملية.
في قسم "التطبيقات التلقائية" في شاشة "الإعدادات".
الشكل 1. التطبيقات التلقائية في شاشة "الإعدادات"
تتعرض VIA المحددة للنظام بطريقتين:
- كجزء من
RolesManager
خدمة تابعة لنظام التشغيل - من
VoiceInteractionManagerService
إلىAssistUtils
واجهة برمجة تطبيقات داخلية.
يمكن الحصول على قائمة بأذونات VIA المرشّحة باستخدام RolesManager
.
باسم الدور android.app.role.ASSISTANT
.
تشغيل الكلمة المفتاح
يوفّر Android خدمة دائمًاOnHotwordDetector.
كتجريد على واجهة DSP للأجهزة. يوفر هذا طريقة ملائمة
ربط VoiceInteractionService
بنموذج صوتي لطاقة البطارية قيد التشغيل دائمًا
التعرف على الصوت. هذا هو تدفق التفاعل الأكثر شيوعًا والمعروف، حيث يكون المستخدم
يطلب التفاعل مع تطبيق Voice لبدء محادثة جديدة. المكالمات الصوتية
يتم تحديد الجلسات التي بدأت بهذه الطريقة مع SHOW_SOURCE_ASSIST_GESTURE flag
.
الشكل 2. تشغيل الكلمة المفتاح
وسيلة الإيضاح. تظهر خدمات النظام باللون الأزرق الفاتح، بينما تظهر مكونات VIA باللون الأخضر.
تشغيل PTT
ينطبق ذلك على الضغط على زر الجهاز لفترة طويلة أو قصيرة. في نظام التشغيل Android Automotive، يتم التعامل مع PTT من خلال CarInputService: بشكل تلقائي، تعالج هذه الخدمة أحداث الإدخال التي يتم تلقّيها من خلال طبقة تجريد الأجهزة (HAL) للمركبة، وفي حالة خاصة بالصوت التفاعل، فإنّه يطبّق المنطق التالي على الأحداث الرئيسية:
- يتم توجيه أحداث PTT القصيرة (
KeyEvent.KEYCODE_VOICE_ASSIST
) إلى يمكنكVoiceInteractionManagerService
لبدء جلسة صوتية جديدة. - يتم تسليم أحداث PTT الطويلة أولاً إلى أجهزة استقبال العرض (على سبيل المثال، Android Auto) أو CarPlay)، ثم إلى الأجهزة المتصلة بالبلوتوث، وأخيرًا إلى بروتوكول VIA المحلي التطبيق.
تم تحديد الجلسات التي بدأت في استخدام هذا المسار باستخدام SHOW_SOURCE_PUSH_TO_TALK
.
الشكل 3. تشغيل PTT
لدمج زر التحكّم الصوتي بالجهاز مع نظام التشغيل AAOS، يمكنك الاطّلاع على دمج إدخال المفتاح التلقائي.
تشغيل النقر للتحدث (أو زر البرنامج)
يتم تشغيل التفاعل الصوتي من واجهة مستخدم النظام باستخدام AssistUtil. هذه واجهة برمجة تطبيقات نظام مخفي لا يمكن استخدامها إلا بواسطة تطبيقات النظام المزوّدة بترقية، مثل واجهة مستخدم النظام التي تتيح ما يلي:
- يتم الآن التفاعل مع
VoiceInteractionManagerService
لبدء جلسات التحكّم الصوتي. - حدد VIA المحددة حاليًا.
لتقديم تطبيق VIA المحدد ديناميكيًا، يمكن لواجهة مستخدم النظام استخدام
RoleManager
ومتابعة التغييرات على صاحب الدور في ROLE_ASSISTANT
.
يمكن العثور على مثال على كيفية تنفيذ ميزة "تحويل النص إلى كلام" (TTT) في CarSystemUI ، AssistantButton
.
الشكل 4. تفعيل النقر للتحدث
النقر لقراءة المساعد الصوتي (TTR)
في السيارات، إنّ الإشعارات التي يتم نشرها في "مركز الإشعارات" والمحددة على أنّها إشعاراتINBOX
أو INBOX_IN_GROUP
(مثل رسائل SMS)
تتضمّن زر الإجراء الخاص بالتشغيل، والذي يتيح للمستخدم قراءة الإشعارات بصوت عالٍ
عبر VIA المحدد، ويمكنك الرد باستخدام الصوت إن أردت.
الشكل 5. الإشعارات
لمزيد من المعلومات حول كيفية تنفيذ هذا المسار، يُرجى الاطّلاع على الاسم المعرِّف أوامر المراسلة.
تشغيل VIA من مشغّل السيارة
مثل أي تطبيق آخر، يمكن أن تتضمن VIA نشاطًا واحدًا أو أكثر على مشغّل التطبيقات على بيانه. الأمر متروك لمطوّر التطبيق والمصنّع الأصلي للجهاز تثبيت هذا التطبيق مسبقًا لتحديد ما ستفعله هذه الأنشطة.
ملاحظة مهمة: في السيارات، تشمل جميع الأنشطة، بما في ذلك النظام
المناسبة لقيود تجربة المستخدم أثناء القيادة. إذا كانت التجربة التي تريدها
للتفعيل من رمز مشغّل التطبيقات يجب أن يكون متاحًا أثناء القيادة، يمكنك إما إضافته إلى
القائمة المسموح بها (إذا كنت مصنّعًا أصليًا) أو أضِف تعليقات توضيحية إلى النشاط باستخدام "distractionOptimized
"
بيانات التعريف. لمزيد من المعلومات، يُرجى مراجعة
إرشادات حول تشتيت السائق
بروتوكول DSP وHAL للصوت
احرص على مراجعة الإرشادات المعدّلة بخصوص ميزة "تشغيل الصوت المتزامن" دائمًا. التسجيل وHAL الصوت عند الالتقاط المتزامن. وقد يؤثر الوصول إلى واجهات برمجة التطبيقات هذه تأثيرًا كبيرًا في أداء الكلمات المفتاح. كما هو موضح في الرد على كلمات تفعيل الإجراء.
الأذونات
منح الأذونات التي يميّزها النظام
ونظرًا لأن المستخدم لا يمكنه منح هذا الإذن المميّز، إذا احتاج VIA إلى أي من على المصنّعين الأصليين للأجهزة تحميل APK مسبقًا في صور النظام ومنح هذه الأذونات بشكل صريح في تصميماتهم. عرض طلب الأذونات.
لإجراء ذلك، أضِف تبعية إلى قائمة الامتيازات المسموح بها إلى مشروعك:
Android.bp
android_app { ... required: ["privapp_allowlist_com.example.myvoicecontrol"], ... }
إضافة ملف إذن القائمة المسموح بها للامتيازات للنظام إلى yourdata/etc/car
المجلد:
vendor/…/data/etc/car/Android.bp
prebuilt_etc { name:privapp_allowlist_com.example.myvoicecontrol", sub_dir: "permissions", src: "com.example.myvoicecontrol.xml", filename_from_src: true, }
vendor/…/data/etc/car/com.example.myvoicecontrol.xml
<?xml version="1.0" encoding="utf-8"?> <permissions> <privapp-permissions package="com.android.car.voicecontrol"> <permission name="android.permission.MEDIA_CONTENT_CONTROL"/> </privapp-permissions> </permissions>
المنح المسبقة للأذونات الخطيرة
كما هو موضح في
طلب
الأذونات، يتطلب VIA موافقة المستخدم للوصول إلى وظائف معينة. بعض هذه الخيارات
يتم منح هذه الأذونات مسبقًا إلى VoiceInteractionService
التلقائي (يُرجى الاطّلاع على
DefaultPermissionGrantPolicy.java
).
لمزيد من المعلومات حول الأذونات للمعالجات التلقائية، يُرجى الاطّلاع على
الأذونات
تُستخدم فقط في المعالجات التلقائية. يمكن أيضًا منح الأذونات مسبقًا باستخدام default-permissions.xml
.
ملف الإعداد. للحصول على تفاصيل حول
القيود المتعلقة بمنح الأذونات مسبقًا، راجع القسم 9 في قسم Android
مستند تعريف التوافق (CDD)
ملاحظة مهمة: في جميع الحالات، سيكون VIA التلقائي هو هذه الأذونات الممنوحة مسبقًا. إذا كان النظام يحتوي على أكثر من VIA واحد تم تحميله مسبقًا، يجب أن تطلب VIA غير الافتراضية أذونات إلى المستخدم بشكل صريح كجزء من عن إعداده أو أثناء استخدامه لأول مرة.
التوزيع (تثبيت التحديثات مسبقًا ونشرها)
يجب أن تكون حِزم VIA المثبَّتة مسبقًا متوفّرة بسعر أقل من /product/priv-apps
أو
أقسام ومجلدات /vendor/priv-apps
(يمكنك التعرّف على المزيد من المعلومات حول الأقسام من خلال نظرة عامة على الأقسام)
إنشاء المنتج
الأقسام).
وفي الحالة الثانية، بالنظر إلى إمكانية تحديث قسم البائع بشكل منفصل من النظام، لن تتمكّن التطبيقات المُستضافة هنا من الوصول إلى @إخفاء واجهات برمجة تطبيقات النظام. يمكن إجراء التحديثات بناءً على موقع التطبيقات المثبّتة مسبقًا. على أنّها عبر الهواء (اطّلِع على التحديثات عبر الهواء) أو من خلال التطبيق التحديثات من متجر التطبيقات.
التخصيص
كما ذُكر في المفاهيم الخاصة بالسيارات، يعد اتساق واجهة المستخدم/تجربة المستخدم والتخصيص أكثر أهمية في السيارات مقارنةً بأي شكل آخر من أشكال الأجهزة. لتحقيق أقصى قدر من إمكانية التشغيل البيني، يجب استخدام نظام التشغيل Android Automotive (AAOS). ويُنصح بشدة باستخدام مكتبة واجهة مستخدم السيارة. تتضمن هذه المكتبة مكونات وموارد يمكن دمجها في السيارات تطبيقات صُمِّمت خصيصًا لتلبية احتياجات المصنّعين الأصليين للأجهزة. وبهذه الطريقة، يمكن إنشاء ملف APK واحد في بحيث يمكن تخصيص واجهة المستخدم الخاصة بها وفقًا لتصميم كل طراز من السيارات.