التحكم في النسخ المطابق من تطبيق آخر
منذ الإصدار v1.8.4 يقبل ScreenOnAuto ثلاثة Intents تبدأ النسخ المطابق أو توقفه أو تبدّل حالته. وأي شيء قادر على إرسال Intent — تطبيق أتمتة، اختصار على الشاشة الرئيسية، سكربت عبر ADB، أو تطبيق من صنعك — يمكنه التحكم بالنسخ المطابق عبرها، فيبدأ مع بقية إعدادات قيادتك بدلًا من تشغيله يدويًا.
الإجراءات الثلاثة
| الإجراء | ما يفعله |
|---|---|
idv.lzn.screenonauto.action.START_MIRROR |
يبدأ النسخ المطابق. لا يفعل شيئًا إن كان يعمل أصلًا. |
idv.lzn.screenonauto.action.STOP_MIRROR |
يوقف النسخ المطابق. لا يفعل شيئًا إن لم يكن يعمل. |
idv.lzn.screenonauto.action.TOGGLE_MIRROR |
يوقفه إن كان يعمل، ويبدأه إن لم يكن. |
تكرار الإجراء آمن دائمًا. فالبدء المُرسَل إلى نسخ مطابق يعمل بالفعل يُتجاهَل بدل هدم الجلسة وإعادة بنائها، أي أن شيئًا يُطلَق عند كل اتصال بلوتوث لن يقطع نسخًا مطابقًا قائمًا.
في تطبيق أتمتة
معظم تطبيقات الأتمتة تعرض العناصر نفسها بمسمياتها الخاصة — عادةً إجراء «إرسال Intent» (Send Intent) بحقول على هذا النحو:
| الحقل | القيمة |
|---|---|
| Action | أحد الإجراءات الثلاثة أعلاه |
| Package | idv.lzn.screenonauto |
| Class | idv.lzn.screenonauto.MirrorControlActivity (أو …MirrorControlReceiver للبث) |
| Target | Activity (أو Broadcast) |
استخدم Activity ما لم يكن لديك سبب لغير ذلك — القسمان التاليان يشرحان الفرق، ولماذا لا يمكن الاعتماد على البث لبدء النسخ المطابق. وفي الحالتين حقل Class ليس اختياريًا: إن تركته فارغًا فلن يصل البث إطلاقًا.
إن لم يعمل شيء ما، جرّب أولًا أمر ADB المقابل أدناه. فهو يخبرك ما إذا كانت المشكلة في الـ Intent نفسها أم في التطبيق الذي يرسلها.
بدء نشاط (مستحسن)
أرسل الإجراء إلى idv.lzn.screenonauto/.MirrorControlActivity بوصفه
نشاطًا (activity):
adb shell am start -a idv.lzn.screenonauto.action.START_MIRROR \ -n idv.lzn.screenonauto/.MirrorControlActivity
لا يظهر أي شيء من ScreenOnAuto على الشاشة، ولا يبقى له أثر في التطبيقات الأخيرة. ويمكنك أيضًا إرسال البدء قبل وصولك إلى السيارة — فالنسخ المطابق ينتظر ويلتقط من تلقاء نفسه بمجرد توفر شاشة السيارة.
ℹ️ ملاحظة لا يزال Android يطلب إذن تسجيل الشاشة عند بدء النسخ المطابق. ولجعل الأمر بلا تدخل يدوي فعلًا، امنح الإذن مسبقًا مرة واحدة عبر ADB — انظر منح إذن النسخ المطابق عبر ADB.
إرسال بث
تعمل الإجراءات الثلاثة نفسها بوصفها بثًا أيضًا، تُرسَل إلى
idv.lzn.screenonauto/.MirrorControlReceiver:
adb shell am broadcast -a idv.lzn.screenonauto.action.STOP_MIRROR \ -n idv.lzn.screenonauto/.MirrorControlReceiver
الإيقاف المُرسَل بهذه الطريقة صامت تمامًا — بلا نافذة وبلا ومضة.
تحديد المكوّن ليس اختياريًا. فنظام Android الحالي لا يسلّم بثًا إلى تطبيق ما لم يذكر المُرسِل المكوّن المقصود، لذا يُهمَل البث الذي يحمل الإجراء وحده ولا يحدث شيء البتة، دون أي رسالة خطأ في أي مكان.
⚠️ تحذير البدء المُرسَل بوصفه بثًا غير موثوق، وحين يفشل يفشل بصمت. ويجب السماح بأمرين أولًا، وكلاهما معطَّل افتراضيًا في كثير من الهواتف:
- التشغيل التلقائي. كثير من الهواتف تأتي بإدارة طاقة تمنع إيقاظ التطبيق ببثٍّ من الأساس. ابحث عن مدير التشغيل التلقائي في إعدادات البطارية أو مدير الهاتف واسمح لـ ScreenOnAuto هناك. وقد يحاول الهاتف ثنيك عن ذلك.
- العرض فوق التطبيقات الأخرى. امنحه لـ ScreenOnAuto من إعدادات تطبيقات Android.
إن كنت تحتاج البدء فقط، فاستخدم النشاط أعلاه — فهو لا يحتاج أيًّا منهما.
استكشاف الأخطاء
- لا يحدث شيء على الإطلاق — تحقّق من تحديد المكوّن. فالبث الخالي منه يُهمَل قبل أن يكون لـ ScreenOnAuto أي دور.
- الإيقاف يعمل والبدء لا يفعل شيئًا — أنت ترسل بثًا، وينقص أحد الإذنين في التحذير أعلاه. أرسِل إلى النشاط بدلًا من ذلك.
- نافذة الإذن تظهر كل مرة — هذا متوقَّع، ما لم تمنح الإذن مسبقًا عبر ADB.
- البدء لا يفعل شيئًا والنسخ المطابق يعمل أصلًا — متوقَّع أيضًا؛ انظر أعلاه.
آخر تحديث: