From 2eb07a6146609f764e1a34b5fe97089fc7bb36b8 Mon Sep 17 00:00:00 2001 From: Iliya Brook Date: Sat, 2 May 2026 06:10:51 +0300 Subject: [PATCH 1/2] Prompt user to enable keyboard accessibility service when streaming --- .../KeyboardAccessibilityService.java | 4 +- app/src/main/java/com/limelight/PcView.java | 40 ++++++++++ .../preferences/PreferenceConfiguration.java | 4 + .../limelight/preferences/StreamSettings.java | 8 ++ .../utils/KeyboardAccessibilityHelper.java | 76 +++++++++++++++++++ app/src/main/res/values-bg/strings.xml | 10 +++ app/src/main/res/values-ckb/strings.xml | 12 ++- app/src/main/res/values-cs/strings.xml | 10 +++ app/src/main/res/values-de/strings.xml | 10 +++ app/src/main/res/values-el/strings.xml | 10 +++ app/src/main/res/values-eo/strings.xml | 10 +++ app/src/main/res/values-es/strings.xml | 10 +++ app/src/main/res/values-fa/strings.xml | 12 ++- app/src/main/res/values-fr/strings.xml | 10 +++ app/src/main/res/values-hu/strings.xml | 10 +++ app/src/main/res/values-in/strings.xml | 10 +++ app/src/main/res/values-it/strings.xml | 10 +++ app/src/main/res/values-iw/strings.xml | 10 +++ app/src/main/res/values-ja/strings.xml | 10 +++ app/src/main/res/values-ko/strings.xml | 10 +++ app/src/main/res/values-nb-rNO/strings.xml | 10 +++ app/src/main/res/values-nl/strings.xml | 10 +++ app/src/main/res/values-pl/strings.xml | 10 +++ app/src/main/res/values-pt-rBR/strings.xml | 10 +++ app/src/main/res/values-pt/strings.xml | 10 +++ app/src/main/res/values-ro/strings.xml | 10 +++ app/src/main/res/values-ru/strings.xml | 10 +++ app/src/main/res/values-sv/strings.xml | 10 +++ app/src/main/res/values-tr/strings.xml | 10 +++ app/src/main/res/values-uk/strings.xml | 10 +++ app/src/main/res/values-vi/strings.xml | 10 +++ app/src/main/res/values-zh-rCN/strings.xml | 10 +++ app/src/main/res/values-zh-rTW/strings.xml | 10 +++ app/src/main/res/values/strings.xml | 10 +++ .../xml/keyboard_accessibility_service.xml | 6 +- app/src/main/res/xml/preferences.xml | 11 +++ 36 files changed, 436 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/com/limelight/utils/KeyboardAccessibilityHelper.java diff --git a/app/src/main/java/com/limelight/KeyboardAccessibilityService.java b/app/src/main/java/com/limelight/KeyboardAccessibilityService.java index fa2e3225ea..248825cbf8 100755 --- a/app/src/main/java/com/limelight/KeyboardAccessibilityService.java +++ b/app/src/main/java/com/limelight/KeyboardAccessibilityService.java @@ -53,10 +53,10 @@ public void onServiceConnected() { LimeLog.info("Keyboard service is connected"); AccessibilityServiceInfo info = new AccessibilityServiceInfo(); info.packageNames = new String[] { BuildConfig.APPLICATION_ID }; - info.eventTypes = AccessibilityEvent.TYPES_ALL_MASK; + info.eventTypes = AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED; info.notificationTimeout = 100; info.flags = AccessibilityServiceInfo.FLAG_REQUEST_FILTER_KEY_EVENTS; - info.feedbackType = AccessibilityServiceInfo.FEEDBACK_SPOKEN; + info.feedbackType = AccessibilityServiceInfo.FEEDBACK_GENERIC; setServiceInfo(info); } diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java index de8f490753..35f4605eef 100755 --- a/app/src/main/java/com/limelight/PcView.java +++ b/app/src/main/java/com/limelight/PcView.java @@ -26,6 +26,7 @@ import com.limelight.ui.AdapterFragmentCallbacks; import com.limelight.utils.Dialog; import com.limelight.utils.HelpLauncher; +import com.limelight.utils.KeyboardAccessibilityHelper; import com.limelight.utils.ServerHelper; import com.limelight.utils.ShortcutHelper; import com.limelight.utils.UiHelper; @@ -76,6 +77,7 @@ public class PcView extends AppCompatActivity implements AdapterFragmentCallback private ShortcutHelper shortcutHelper; private ComputerManagerService.ComputerManagerBinder managerBinder; private boolean freezeUpdates, runningPolling, inForeground, completeOnCreateCalled; + private boolean keyboardA11yPromptShown = false; private ComputerDetails.AddressTuple pendingPairingAddress; private String pendingPairingPin, pendingPairingPassphrase; private final ServiceConnection serviceConnection = new ServiceConnection() { @@ -378,6 +380,44 @@ protected void onResume() { inForeground = true; startComputerUpdates(); + + maybePromptForKeyboardAccessibility(); + } + + private void maybePromptForKeyboardAccessibility() { + if (keyboardA11yPromptShown || isFinishing() || isDestroyed()) { + return; + } + PreferenceConfiguration prefConfig = PreferenceConfiguration.readPreferences(this); + if (prefConfig.suppressKeyboardA11yPrompt) { + return; + } + if (!KeyboardAccessibilityHelper.hasPhysicalKeyboard(this)) { + return; + } + if (KeyboardAccessibilityHelper.isKeyboardServiceEnabled(this)) { + return; + } + + keyboardA11yPromptShown = true; + + AlertDialog.Builder b = new AlertDialog.Builder(this); + b.setTitle(R.string.keyboard_a11y_prompt_title); + b.setMessage(R.string.keyboard_a11y_prompt_message); + b.setPositiveButton(R.string.keyboard_a11y_prompt_open_settings, (dialog, which) -> { + KeyboardAccessibilityHelper.openAccessibilitySettings(PcView.this); + }); + b.setNeutralButton(R.string.keyboard_a11y_prompt_app_details, (dialog, which) -> { + KeyboardAccessibilityHelper.openAppDetails(PcView.this); + }); + b.setNegativeButton(R.string.keyboard_a11y_prompt_dont_show_again, (dialog, which) -> { + PreferenceManager.getDefaultSharedPreferences(PcView.this) + .edit() + .putBoolean("checkbox_suppress_keyboard_a11y_prompt", true) + .apply(); + }); + b.setCancelable(true); + b.show(); } @Override diff --git a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java index 96249d87ac..64b57038a0 100755 --- a/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java +++ b/app/src/main/java/com/limelight/preferences/PreferenceConfiguration.java @@ -104,6 +104,7 @@ public enum AnalogStickForScrolling { private static final String CHECKBOX_FORCE_QWERTY = "checkbox_force_qwerty"; private static final String CHECKBOX_BACK_AS_META = "checkbox_back_as_meta"; private static final String CHECKBOX_IGNORE_SYNTH_EVENTS = "checkbox_ignore_synth_events"; + private static final String CHECKBOX_SUPPRESS_KEYBOARD_A11Y_PROMPT = "checkbox_suppress_keyboard_a11y_prompt"; private static final String CHECKBOX_BACK_AS_GUIDE = "checkbox_back_as_guide"; private static final String CHECKBOX_SMART_CLIPBOARD_SYNC = "checkbox_smart_clipboard_sync"; private static final String CHECKBOX_SMART_CLIPBOARD_SYNC_TOAST = "checkbox_smart_clipboard_sync_toast"; @@ -194,6 +195,7 @@ public enum AnalogStickForScrolling { private static final boolean DEFAULT_FORCE_QWERTY = true; private static final boolean DEFAULT_SEND_META_ON_PHYSICAL_BACK = false; private static final boolean DEFAULT_IGNORE_SYNTH_EVENTS = false; + private static final boolean DEFAULT_SUPPRESS_KEYBOARD_A11Y_PROMPT = false; private static final boolean DEFAULT_ENABLE_FLOATING_BUTTON = false; private static final boolean DEFAULT_BACK_AS_GUIDE = false; private static final boolean DEFAULT_SMART_CLIPBOARD_SYNC = false; @@ -255,6 +257,7 @@ public enum AnalogStickForScrolling { public boolean forceQwerty; public boolean backAsMeta; public boolean ignoreSynthEvents; + public boolean suppressKeyboardA11yPrompt; public boolean backAsGuide; public boolean smartClipboardSync; public boolean smartClipboardSyncToast; @@ -1007,6 +1010,7 @@ else if (audioConfig.equals("51")) { config.forceQwerty = prefs.getBoolean(CHECKBOX_FORCE_QWERTY, DEFAULT_FORCE_QWERTY); config.backAsMeta = prefs.getBoolean(CHECKBOX_BACK_AS_META, DEFAULT_SEND_META_ON_PHYSICAL_BACK); config.ignoreSynthEvents = prefs.getBoolean(CHECKBOX_IGNORE_SYNTH_EVENTS, DEFAULT_IGNORE_SYNTH_EVENTS); + config.suppressKeyboardA11yPrompt = prefs.getBoolean(CHECKBOX_SUPPRESS_KEYBOARD_A11Y_PROMPT, DEFAULT_SUPPRESS_KEYBOARD_A11Y_PROMPT); config.backAsGuide = prefs.getBoolean(CHECKBOX_BACK_AS_GUIDE, DEFAULT_BACK_AS_GUIDE); config.smartClipboardSync = prefs.getBoolean(CHECKBOX_SMART_CLIPBOARD_SYNC, DEFAULT_SMART_CLIPBOARD_SYNC); config.smartClipboardSyncToast = prefs.getBoolean(CHECKBOX_SMART_CLIPBOARD_SYNC_TOAST, DEFAULT_SMART_CLIPBOARD_SYNC_TOAST); diff --git a/app/src/main/java/com/limelight/preferences/StreamSettings.java b/app/src/main/java/com/limelight/preferences/StreamSettings.java index 5b2d20de13..8ac12a802c 100755 --- a/app/src/main/java/com/limelight/preferences/StreamSettings.java +++ b/app/src/main/java/com/limelight/preferences/StreamSettings.java @@ -339,6 +339,14 @@ public void initializePreferences() { AppCompatActivity activity = (AppCompatActivity) requireActivity(); PackageManager pm = activity.getPackageManager(); + Preference openA11y = findPreference("open_keyboard_a11y_settings"); + if (openA11y != null) { + openA11y.setOnPreferenceClickListener(p -> { + com.limelight.utils.KeyboardAccessibilityHelper.openAccessibilitySettings(activity); + return true; + }); + } + // hide on-screen controls category on non touch screen devices if (!pm.hasSystemFeature(PackageManager.FEATURE_TOUCHSCREEN)) { PreferenceCategory category = findPreference("category_onscreen_controls"); diff --git a/app/src/main/java/com/limelight/utils/KeyboardAccessibilityHelper.java b/app/src/main/java/com/limelight/utils/KeyboardAccessibilityHelper.java new file mode 100644 index 0000000000..e73935e6e6 --- /dev/null +++ b/app/src/main/java/com/limelight/utils/KeyboardAccessibilityHelper.java @@ -0,0 +1,76 @@ +package com.limelight.utils; + +import android.app.Activity; +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.provider.Settings; +import android.view.InputDevice; +import android.view.accessibility.AccessibilityManager; + +import com.limelight.BuildConfig; +import com.limelight.KeyboardAccessibilityService; + +import java.util.List; + +public final class KeyboardAccessibilityHelper { + + private KeyboardAccessibilityHelper() {} + + private static String getOurServiceId() { + return BuildConfig.APPLICATION_ID + "/" + KeyboardAccessibilityService.class.getName(); + } + + public static boolean isKeyboardServiceEnabled(Context ctx) { + AccessibilityManager am = (AccessibilityManager) ctx.getSystemService(Context.ACCESSIBILITY_SERVICE); + if (am == null || !am.isEnabled()) { + return false; + } + + String ourId = getOurServiceId(); + List enabled = + am.getEnabledAccessibilityServiceList(android.accessibilityservice.AccessibilityServiceInfo.FEEDBACK_ALL_MASK); + if (enabled == null) { + return false; + } + for (android.accessibilityservice.AccessibilityServiceInfo info : enabled) { + if (ourId.equalsIgnoreCase(info.getId())) { + return true; + } + } + return false; + } + + public static boolean hasPhysicalKeyboard(Context ctx) { + for (int id : InputDevice.getDeviceIds()) { + InputDevice device = InputDevice.getDevice(id); + if (device == null || device.isVirtual()) { + continue; + } + if ((device.getSources() & InputDevice.SOURCE_KEYBOARD) == InputDevice.SOURCE_KEYBOARD + && device.getKeyboardType() == InputDevice.KEYBOARD_TYPE_ALPHABETIC) { + return true; + } + } + return false; + } + + public static void openAccessibilitySettings(Activity activity) { + try { + Intent intent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + activity.startActivity(intent); + } catch (Exception ignored) { + } + } + + public static void openAppDetails(Activity activity) { + try { + Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.fromParts("package", activity.getPackageName(), null)); + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + activity.startActivity(intent); + } catch (Exception ignored) { + } + } +} diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index f716b40fb6..c3cb6ec6e1 100755 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -142,4 +142,14 @@ Разреши изпращане на текст на блокове (жестово/гласово въвеждане) Изпраща текст от софтуерната клавиатура наведнъж (жестово писане, предложения, гласово диктуване). Възможно е да не работи с игри, които разчитат на по-символно въвеждане. + + Препращане на системните клавишни комбинации към компютъра? + Android прихваща клавишни комбинации като Alt+Tab, Alt+Esc и клавиша Win, преди да достигнат до хоста. За да ги препратите, активирайте \"Artemis Physical keyboard\" в Настройки за достъпност.\n\nАко превключвателят не остава включен, отворете страницата с информация за приложението и разрешете ограничените настройки, след което се върнете в Достъпност. + Настройки за достъпност + Информация за приложението + Не показвай повече + Препращане на системните клавишни комбинации + Отворете Настройки за достъпност, за да активирате услугата за клавиатура Artemis. Необходимо за препращане на Alt+Tab, Alt+Esc, клавиша Win и други системни комбинации към компютъра хост. + Не питай за активиране на услугата за клавиатура + Скрива подканата, която се показва при поточно предаване с физическа клавиатура, докато услугата за достъпност е изключена. \ No newline at end of file diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml index bb07ee3676..43fd308c76 100755 --- a/app/src/main/res/values-ckb/strings.xml +++ b/app/src/main/res/values-ckb/strings.xml @@ -1,2 +1,12 @@ - \ No newline at end of file + + قەدبڕەکانی سیستەم بۆ PC بنێردرێن؟ + ‏Android قەدبڕەکان وەک Alt+Tab، Alt+Esc و دوگمەی Win دەگرێتەوە پێش ئەوەی بگەن بە میوانخانە. بۆ ناردنیان، \"Artemis Physical keyboard\" چالاک بکە لە ڕێکخستنەکانی دەستڕاگەیشتن.\n\nئەگەر دوگمەکە چالاک نەمێنێتەوە، پەڕەی زانیاری ئەپەکە بکەرەوە و ڕێگە بدە بە ڕێکخستنە سنووردارەکان، پاشان بگەڕێرەوە بۆ دەستڕاگەیشتن. + ڕێکخستنەکانی دەستڕاگەیشتن + زانیاری ئەپ + دیسان نیشانی مەدە + قەدبڕەکانی تەختەکلیلی سیستەم بنێرە + ڕێکخستنەکانی دەستڕاگەیشتن بکەرەوە بۆ چالاککردنی خزمەتگوزاری تەختەکلیلی Artemis. پێویستە بۆ ناردنی Alt+Tab، Alt+Esc، دوگمەی Win و قەدبڕەکانی تری سیستەم بۆ PC ـی میوانخانە. + داوای چالاککردنی خزمەتگوزاری تەختەکلیل مەکە + ئەو پەیامە دەشاردرێتەوە کە دەردەکەوێت لە کاتی پەخشکردن بە تەختەکلیلی فیزیکی کاتێک خزمەتگوزاری دەستڕاگەیشتن ناچالاکە. + \ No newline at end of file diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index a047bb9733..b69492e7bf 100755 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -248,4 +248,14 @@ Preferovat nejnižší zpoždění Povolit vstup commit-textu (swipe/hlas) Předává vícestránkový text z softwarových klávesnic (psaní gesty, návrhy, diktování). Může narušit hry, které vyžadují jednotlivé stisky kláves. + + Přeposílat systémové klávesové zkratky do PC? + Android zachycuje klávesové zkratky jako Alt+Tab, Alt+Esc a klávesu Win dříve, než se dostanou k hostiteli. Pro jejich přeposílání povolte \"Artemis Physical keyboard\" v Nastavení přístupnosti.\n\nPokud přepínač nezůstane zapnutý, otevřete stránku informací o aplikaci a povolte omezená nastavení, poté se vraťte do Přístupnosti. + Nastavení přístupnosti + Informace o aplikaci + Příště nezobrazovat + Přeposílat systémové klávesové zkratky + Otevřít Nastavení přístupnosti pro povolení služby klávesnice Artemis. Vyžadováno pro přeposílání Alt+Tab, Alt+Esc, klávesy Win a dalších systémových zkratek do hostitelského PC. + Nedotazovat se na povolení služby klávesnice + Skrýt výzvu, která se zobrazí při streamování s fyzickou klávesnicí, když je služba přístupnosti vypnutá. \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ae5b9ee0f1..57f56a305e 100755 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -310,4 +310,14 @@ Profil bearbeiten + + Systemtastenkürzel an den PC weiterleiten? + Android fängt Tastenkürzel wie Alt+Tab, Alt+Esc und die Win-Taste ab, bevor sie den Host erreichen. Um sie weiterzuleiten, aktivieren Sie \"Artemis Physical keyboard\" in den Bedienungshilfen-Einstellungen.\n\nFalls der Schalter nicht aktiviert bleibt, öffnen Sie die App-Info-Seite und erlauben Sie eingeschränkte Einstellungen, kehren Sie dann zu den Bedienungshilfen zurück. + Bedienungshilfen-Einstellungen + App-Info + Nicht mehr anzeigen + Systemtastenkürzel weiterleiten + Bedienungshilfen-Einstellungen öffnen, um den Artemis-Tastaturdienst zu aktivieren. Erforderlich, um Alt+Tab, Alt+Esc, die Win-Taste und andere Systemtastenkürzel an den Host-PC weiterzuleiten. + Nicht nach Aktivierung des Tastaturdienstes fragen + Blendet die Aufforderung aus, die beim Streamen mit physischer Tastatur erscheint, während der Bedienungshilfen-Dienst deaktiviert ist. \ No newline at end of file diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 84fab3d460..cdda604349 100755 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -213,4 +213,14 @@ Εάν ο υπολογιστής οικοδεσπότης χρησιμοποιεί το Sunshine, πλοηγηθείτε στην διαδικτυακή διεπαφή χρήστη του Sunshine για να εισάγετε το PIN. Ενεργοποίηση εισαγωγής commit-text (σάρωση/φωνή) Προωθεί κείμενο πολλών χαρακτήρων από τα εικονικά πληκτρολόγια (σάρωση, προτάσεις, φωνητική πληκτρολόγηση). Ίσως προκαλέσει προβλήματα σε παιχνίδια που βασίζονται σε πληκτρολόγηση πλήκτρο-πλήκτρο. + + Προώθηση συντομεύσεων συστήματος στο PC; + Το Android παρεμποδίζει συντομεύσεις όπως Alt+Tab, Alt+Esc και το πλήκτρο Win πριν φτάσουν στον κεντρικό υπολογιστή. Για να τις προωθήσετε, ενεργοποιήστε το \"Artemis Physical keyboard\" στις ρυθμίσεις Προσβασιμότητας.\n\nΑν ο διακόπτης δεν παραμένει ενεργοποιημένος, ανοίξτε τη σελίδα πληροφοριών της εφαρμογής και επιτρέψτε τις περιορισμένες ρυθμίσεις, στη συνέχεια επιστρέψτε στην Προσβασιμότητα. + Ρυθμίσεις προσβασιμότητας + Πληροφορίες εφαρμογής + Να μην εμφανιστεί ξανά + Προώθηση συντομεύσεων πληκτρολογίου συστήματος + Άνοιγμα ρυθμίσεων Προσβασιμότητας για ενεργοποίηση της υπηρεσίας πληκτρολογίου Artemis. Απαιτείται για την προώθηση Alt+Tab, Alt+Esc, του πλήκτρου Win και άλλων συντομεύσεων συστήματος στον κεντρικό υπολογιστή. + Να μην γίνεται προτροπή για ενεργοποίηση της υπηρεσίας πληκτρολογίου + Απόκρυψη της προτροπής που εμφανίζεται κατά τη ροή με φυσικό πληκτρολόγιο όταν η υπηρεσία Προσβασιμότητας είναι απενεργοποιημένη. \ No newline at end of file diff --git a/app/src/main/res/values-eo/strings.xml b/app/src/main/res/values-eo/strings.xml index 5e794a7918..552496ee19 100644 --- a/app/src/main/res/values-eo/strings.xml +++ b/app/src/main/res/values-eo/strings.xml @@ -36,4 +36,14 @@ Malparigante… Konektante al komputilo… Malparigi + + Ĉu plusendi sistemajn klavkombinojn al la komputilo? + Android kaptas klavkombinojn kiel Alt+Tab, Alt+Esc kaj la Win-klavon antaŭ ol ili atingas la gastiganton. Por plusendi ilin, ŝaltu \"Artemis Physical keyboard\" en agordoj de Alirebleco.\n\nSe la ŝaltilo ne restas aktivita, malfermu la paĝon kun informoj pri la aplikaĵo kaj permesu limigitajn agordojn, poste revenu al Alirebleco. + Agordoj de Alirebleco + Informoj pri aplikaĵo + Ne montri denove + Plusendi sistemajn klavkombinojn + Malfermi agordojn de Alirebleco por ŝalti la klavarservon Artemis. Bezonata por plusendi Alt+Tab, Alt+Esc, la Win-klavon kaj aliajn sistemajn klavkombinojn al la gastiganta komputilo. + Ne demandi pri ŝaltado de klavarservo + Kaŝas la demandon kiu aperas ĉe rivereto kun fizika klavaro dum la servo Alirebleco estas malŝaltita. \ No newline at end of file diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 88f6c35fb6..ea3471f785 100755 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -294,4 +294,14 @@ Recordar zoom y desplazamiento Guarda la posición de zoom y desplazamiento entre sesiones. Editar perfil + + ¿Reenviar atajos del sistema al PC? + Android intercepta atajos como Alt+Tab, Alt+Esc y la tecla Win antes de que lleguen al host. Para reenviarlos, activa \"Artemis Physical keyboard\" en los ajustes de Accesibilidad.\n\nSi el interruptor no permanece activado, abre la página de información de la aplicación y permite los ajustes restringidos, luego vuelve a Accesibilidad. + Ajustes de accesibilidad + Información de la aplicación + No mostrar de nuevo + Reenviar atajos de teclado del sistema + Abrir Ajustes de accesibilidad para activar el servicio de teclado Artemis. Necesario para reenviar Alt+Tab, Alt+Esc, la tecla Win y otros atajos del sistema al PC host. + No preguntar para activar el servicio de teclado + Oculta el aviso que aparece al transmitir con teclado físico mientras el servicio de Accesibilidad está desactivado. diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml index bb07ee3676..de072af66a 100755 --- a/app/src/main/res/values-fa/strings.xml +++ b/app/src/main/res/values-fa/strings.xml @@ -1,2 +1,12 @@ - \ No newline at end of file + + میانبرهای سیستم به رایانه ارسال شود؟ + ‏Android میانبرهایی مانند Alt+Tab، Alt+Esc و کلید Win را پیش از رسیدن به میزبان رهگیری می‌کند. برای ارسال آن‌ها، \"Artemis Physical keyboard\" را در تنظیمات دسترس‌پذیری فعال کنید.\n\nاگر کلید فعال باقی نمی‌ماند، صفحه اطلاعات برنامه را باز کنید و تنظیمات محدودشده را اجازه دهید، سپس به دسترس‌پذیری بازگردید. + تنظیمات دسترس‌پذیری + اطلاعات برنامه + دوباره نشان نده + ارسال میانبرهای صفحه‌کلید سیستم + برای فعال‌سازی سرویس صفحه‌کلید Artemis، تنظیمات دسترس‌پذیری را باز کنید. برای ارسال Alt+Tab، Alt+Esc، کلید Win و سایر میانبرهای سیستم به رایانه میزبان لازم است. + برای فعال‌سازی سرویس صفحه‌کلید پرسش نشود + پیامی را که هنگام پخش با صفحه‌کلید فیزیکی در حالی که سرویس دسترس‌پذیری غیرفعال است نمایش داده می‌شود، پنهان می‌کند. + \ No newline at end of file diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c32222373e..08b3bfc91c 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -590,4 +590,14 @@ Mémoriser le zoom et le panoramique Enregistre la position de zoom et de panoramique entre les sessions. Modifier le profil + + Transférer les raccourcis système vers le PC ? + Android intercepte les raccourcis tels qu\'Alt+Tab, Alt+Esc et la touche Win avant qu\'ils n\'atteignent l\'hôte. Pour les transférer, activez \"Artemis Physical keyboard\" dans les paramètres d\'Accessibilité.\n\nSi l\'interrupteur ne reste pas activé, ouvrez la page d\'informations de l\'application et autorisez les paramètres restreints, puis revenez dans Accessibilité. + Paramètres d\'accessibilité + Infos sur l\'application + Ne plus afficher + Transférer les raccourcis clavier système + Ouvre les paramètres d\'Accessibilité pour activer le service clavier Artemis. Nécessaire pour transférer Alt+Tab, Alt+Esc, la touche Win et d\'autres raccourcis système vers le PC hôte. + Ne pas demander d\'activer le service clavier + Masque l\'invite qui apparaît lors d\'une diffusion avec un clavier physique tant que le service d\'Accessibilité est désactivé. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 9589cc9b49..6346dffbdf 100755 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -260,4 +260,14 @@ A legalacsonyabb késleltetés előnyben részesítése Commit-szöveg bevitel engedélyezése (húzás/hang) A képernyő-billentyűzetek többkarakteres szövegét (gesztusos gépelés, predikciók, hangalapú diktálás) továbbítja. Megzavarhatja azokat a játékokat, amelyek egyes gombnyomásokra támaszkodnak. + + Rendszerszintű billentyűparancsok továbbítása a PC-re? + Az Android elfogja az olyan billentyűparancsokat, mint az Alt+Tab, Alt+Esc és a Win billentyű, mielőtt elérnék a hostot. A továbbításukhoz engedélyezze az \"Artemis Physical keyboard\" lehetőséget a Kisegítő lehetőségek beállításaiban.\n\nHa a kapcsoló nem marad bekapcsolva, nyissa meg az alkalmazás adatlapját, és engedélyezze a korlátozott beállításokat, majd térjen vissza a Kisegítő lehetőségekhez. + Kisegítő lehetőségek + Alkalmazásadatok + Ne jelenjen meg többé + Rendszerszintű billentyűparancsok továbbítása + A Kisegítő lehetőségek megnyitása az Artemis billentyűzetszolgáltatás engedélyezéséhez. Szükséges az Alt+Tab, Alt+Esc, Win billentyű és egyéb rendszerszintű parancsok host PC-re továbbításához. + Ne kérdezzen rá a billentyűzetszolgáltatás engedélyezésére + Elrejti azt a kérést, amely fizikai billentyűzettel történő streamelés közben jelenik meg, ha a Kisegítő lehetőségek szolgáltatása ki van kapcsolva. \ No newline at end of file diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 45b485ffa9..e39561260c 100755 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -212,4 +212,14 @@ Kode galat: Aktifkan input commit-text (geser/suara) Meneruskan teks multi-karakter dari papan ketik lunak (gestur geser, prediksi, dikte suara). Mungkin menyebabkan masalah pada gim yang bergantung pada input per tombol. + + Teruskan pintasan sistem ke PC? + Android mencegat pintasan seperti Alt+Tab, Alt+Esc, dan tombol Win sebelum mencapai host. Untuk meneruskannya, aktifkan \"Artemis Physical keyboard\" di pengaturan Aksesibilitas.\n\nJika tombol tidak tetap aktif, buka halaman info aplikasi dan izinkan pengaturan yang dibatasi, lalu kembali ke Aksesibilitas. + Pengaturan aksesibilitas + Info aplikasi + Jangan tampilkan lagi + Teruskan pintasan keyboard sistem + Buka pengaturan Aksesibilitas untuk mengaktifkan layanan keyboard Artemis. Diperlukan untuk meneruskan Alt+Tab, Alt+Esc, tombol Win, dan pintasan sistem lainnya ke PC host. + Jangan tanyakan untuk mengaktifkan layanan keyboard + Sembunyikan permintaan yang muncul saat streaming dengan keyboard fisik sementara layanan Aksesibilitas dinonaktifkan. \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2758d63f34..a6f7e81a7d 100755 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -290,4 +290,14 @@ Stick analogico sinistro Abilita input commit-text (swipe/voce) Invia al PC testi multi-carattere provenienti dalle tastiere software (scrittura a gesto, suggerimenti, dettatura vocale). Può causare problemi ai giochi che richiedono la pressione singola dei tasti. + + Inoltrare le scorciatoie di sistema al PC? + Android intercetta le scorciatoie come Alt+Tab, Alt+Esc e il tasto Win prima che raggiungano l\'host. Per inoltrarle, abilita \"Artemis Physical keyboard\" nelle impostazioni di Accessibilità.\n\nSe l\'interruttore non rimane attivo, apri la pagina delle informazioni dell\'app e consenti le impostazioni con restrizioni, quindi torna in Accessibilità. + Impostazioni di accessibilità + Info app + Non mostrare più + Inoltra scorciatoie di tastiera di sistema + Apri le impostazioni di Accessibilità per abilitare il servizio tastiera Artemis. Richiesto per inoltrare Alt+Tab, Alt+Esc, il tasto Win e altre scorciatoie di sistema al PC host. + Non chiedere di abilitare il servizio tastiera + Nasconde il messaggio che appare durante lo streaming con tastiera fisica mentre il servizio di Accessibilità è disabilitato. \ No newline at end of file diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index 0cc691a4bb..832867eded 100755 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -153,4 +153,14 @@ השתמש במסך מגע כמשטח מגע הפעל קלט commit-text (החלקה/קול) מעביר טקסט מרובה תווים ממקלדות וירטואליות (החלקה, הצעות, הקלדה קולית). עלול לגרום בעיות במשחקים שמסתמכים על קלט לפי מקש. + + להעביר קיצורי מקלדת של המערכת למחשב? + ‏Android חוטף קיצורים כמו Alt+Tab, Alt+Esc ומקש Win לפני שהם מגיעים למארח. כדי להעביר אותם, הפעל את \"Artemis Physical keyboard\" בהגדרות הנגישות.\n\nאם המתג לא נשאר מופעל, פתח את דף פרטי האפליקציה ואפשר הגדרות מוגבלות, ואז חזור אל הנגישות. + הגדרות נגישות + פרטי אפליקציה + לא להציג שוב + העבר קיצורי מקלדת של המערכת + פתח את הגדרות הנגישות כדי להפעיל את שירות המקלדת של Artemis. נדרש כדי להעביר את Alt+Tab, Alt+Esc, מקש Win וקיצורי מערכת אחרים למחשב המארח. + לא לבקש להפעיל את שירות המקלדת + מסתיר את ההודעה שמופיעה במהלך סטרימינג עם מקלדת פיזית כאשר שירות הנגישות מושבת. \ No newline at end of file diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index f1eecd173f..55f4f11c69 100755 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -184,4 +184,14 @@ \nカスタム解像度を作成することに起因する問題について、私たちは責任を負いません。 \n \nモニターが必要な表示設定をサポートしていない場合もあります。その場合は、仮想モニターを設定してみてください。最後に、デバイスまたはホストPCが特定の解像度またはリフレッシュレートでのストリーミングをサポートしていない場合、残念ながら運が悪かったということになります。 + + システムショートカットをPCに転送しますか? + Android は Alt+Tab、Alt+Esc、Win キーなどのショートカットがホストに届く前に横取りします。これらを転送するには、ユーザー補助設定で「Artemis Physical keyboard」を有効にしてください。\n\nトグルがオンのまま維持されない場合は、アプリ情報ページを開いて制限付き設定を許可し、ユーザー補助に戻ってください。 + ユーザー補助設定 + アプリ情報 + 今後表示しない + システムキーボードショートカットを転送 + ユーザー補助設定を開いて Artemis キーボードサービスを有効化します。Alt+Tab、Alt+Esc、Win キーなどのシステムショートカットをホストPCに転送するために必要です。 + キーボードサービスの有効化を確認しない + ユーザー補助サービスが無効な状態で物理キーボード使用中にストリーミングするときに表示される確認を非表示にします。 \ No newline at end of file diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 3d5d55a92f..37cf1b6289 100755 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -289,4 +289,14 @@ % 커밋 텍스트 입력 활성화 (스와이프/음성) 소프트 키보드의 여러 글자 입력(제스처 타이핑, 예측, 음성 입력)을 PC로 전달합니다. 키 단위 입력에 의존하는 게임에서는 문제가 발생할 수 있습니다. + + 시스템 단축키를 PC로 전달하시겠습니까? + Android는 Alt+Tab, Alt+Esc, Win 키와 같은 단축키를 호스트에 도달하기 전에 가로챕니다. 이를 전달하려면 접근성 설정에서 \"Artemis Physical keyboard\"를 활성화하세요.\n\n토글이 켜진 상태로 유지되지 않으면 앱 정보 페이지를 열어 제한된 설정을 허용한 후 접근성으로 돌아오세요. + 접근성 설정 + 앱 정보 + 다시 표시하지 않음 + 시스템 키보드 단축키 전달 + 접근성 설정을 열어 Artemis 키보드 서비스를 활성화합니다. Alt+Tab, Alt+Esc, Win 키 및 기타 시스템 단축키를 호스트 PC로 전달하는 데 필요합니다. + 키보드 서비스 활성화 묻지 않기 + 접근성 서비스가 비활성화된 상태에서 물리 키보드로 스트리밍할 때 나타나는 알림을 숨깁니다. \ No newline at end of file diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 8b1c53bc7c..6a89d04ca6 100755 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -209,4 +209,14 @@ Videostrøm: %1$s %2$.2f BPS Aktiver commit-tekst-input (sveip/stemme) Sender tekst med flere tegn fra skjermtastaturet (gesture-skriving, forslag, stemmediktat). Kan skape problemer i spill som krever tast-for-tast-inndata. + + Videresend systemsnarveier til PC-en? + Android fanger opp snarveier som Alt+Tab, Alt+Esc og Win-tasten før de når verten. For å videresende dem må du aktivere \"Artemis Physical keyboard\" i Tilgjengelighetsinnstillinger.\n\nHvis bryteren ikke forblir på, åpne app-informasjonssiden og tillat begrensede innstillinger, og gå deretter tilbake til Tilgjengelighet. + Tilgjengelighetsinnstillinger + Appinfo + Ikke vis igjen + Videresend systemtastatursnarveier + Åpne Tilgjengelighetsinnstillinger for å aktivere Artemis-tastaturtjenesten. Kreves for å videresende Alt+Tab, Alt+Esc, Win-tasten og andre systemsnarveier til verts-PC-en. + Ikke spør om å aktivere tastaturtjenesten + Skjuler meldingen som vises ved strømming med fysisk tastatur når Tilgjengelighet-tjenesten er deaktivert. \ No newline at end of file diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 77b5f0ecbd..b1f89c8992 100755 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -224,4 +224,14 @@ Gebruik HEVC altijd (mogelijkheid tot crashes) Commit-tekstinvoer inschakelen (veeg/stem) Stuurt meerteksts invoer van softwaretoetsenborden (veegtypen, voorspellingen, spraakdicteren) door naar de pc. Kan problemen geven bij games die per-toetsinvoer vereisen. + + Systeemsnelkoppelingen doorsturen naar pc? + Android onderschept snelkoppelingen zoals Alt+Tab, Alt+Esc en de Win-toets voordat ze de host bereiken. Om ze door te sturen, schakel je \"Artemis Physical keyboard\" in bij Toegankelijkheidsinstellingen.\n\nAls de schakelaar niet ingeschakeld blijft, open dan de app-info-pagina en sta beperkte instellingen toe, en keer dan terug naar Toegankelijkheid. + Toegankelijkheidsinstellingen + App-info + Niet meer tonen + Systeemtoetsenbordsnelkoppelingen doorsturen + Open Toegankelijkheidsinstellingen om de Artemis-toetsenbordservice in te schakelen. Vereist om Alt+Tab, Alt+Esc, de Win-toets en andere systeemsnelkoppelingen door te sturen naar de host-pc. + Niet vragen om toetsenbordservice in te schakelen + Verbergt de melding die verschijnt bij streamen met een fysiek toetsenbord terwijl de Toegankelijkheidsservice is uitgeschakeld. \ No newline at end of file diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 25306f38de..de636953fc 100755 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -273,4 +273,14 @@ Wyświetl instrukcje, jak skonfigurować komputer do gier do streamowania Włącz przekazywanie tekstu (pisanie gestem/głos) Przekazuje wieloznakowy tekst z klawiatur ekranowych (pisanie gestem, podpowiedzi, dyktowanie głosowe) do hosta. Może powodować problemy w grach wymagających wprowadzania znak po znaku. + + Przekazywać skróty systemowe do PC? + Android przechwytuje skróty takie jak Alt+Tab, Alt+Esc i klawisz Win, zanim dotrą do hosta. Aby je przekazywać, włącz \"Artemis Physical keyboard\" w ustawieniach Ułatwień dostępu.\n\nJeśli przełącznik nie pozostaje włączony, otwórz stronę informacji o aplikacji i zezwól na ustawienia ograniczone, a następnie wróć do Ułatwień dostępu. + Ustawienia ułatwień dostępu + Informacje o aplikacji + Nie pokazuj ponownie + Przekazuj skróty klawiaturowe systemu + Otwórz ustawienia Ułatwień dostępu, aby włączyć usługę klawiatury Artemis. Wymagane do przekazywania Alt+Tab, Alt+Esc, klawisza Win i innych skrótów systemowych do hosta PC. + Nie pytaj o włączenie usługi klawiatury + Ukrywa monit pojawiający się podczas strumieniowania z klawiaturą fizyczną, gdy usługa Ułatwień dostępu jest wyłączona. \ No newline at end of file diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index facc3de05d..0363979549 100755 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -252,4 +252,14 @@ FPS Ativar envio de texto concluído (gesto/voz) Encaminha textos com vários caracteres de teclados virtuais (digitação por gestos, sugestões, ditado por voz). Pode causar problemas em jogos que dependem de entrada tecla por tecla. + + Encaminhar atalhos do sistema para o PC? + O Android intercepta atalhos como Alt+Tab, Alt+Esc e a tecla Win antes que cheguem ao host. Para encaminhá-los, ative \"Artemis Physical keyboard\" nas configurações de Acessibilidade.\n\nSe a chave não permanecer ativada, abra a página de informações do aplicativo e permita as configurações restritas, depois volte para Acessibilidade. + Configurações de acessibilidade + Informações do app + Não mostrar novamente + Encaminhar atalhos de teclado do sistema + Abrir configurações de Acessibilidade para ativar o serviço de teclado Artemis. Necessário para encaminhar Alt+Tab, Alt+Esc, a tecla Win e outros atalhos do sistema para o PC host. + Não perguntar para ativar o serviço de teclado + Oculta a mensagem que aparece durante o streaming com teclado físico enquanto o serviço de Acessibilidade está desativado. \ No newline at end of file diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index aa92d57d13..8b3a577c08 100755 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -255,4 +255,14 @@ Selecciona um stick analógico para fazer scroll quando a emulação de rato está ativada Ativar entrada de texto commit (gesto/voz) Reencaminha texto com vários caracteres proveniente de teclados virtuais (digitação por gestos, previsões, ditado por voz). Pode causar problemas em jogos que dependem de entradas tecla-a-tecla. + + Encaminhar atalhos do sistema para o PC? + O Android interceta atalhos como Alt+Tab, Alt+Esc e a tecla Win antes de chegarem ao anfitrião. Para os encaminhar, ative \"Artemis Physical keyboard\" nas definições de Acessibilidade.\n\nSe o interruptor não permanecer ativo, abra a página de informações da aplicação e permita as definições restritas e, em seguida, regresse a Acessibilidade. + Definições de acessibilidade + Informações da aplicação + Não mostrar novamente + Encaminhar atalhos de teclado do sistema + Abrir definições de Acessibilidade para ativar o serviço de teclado Artemis. Necessário para encaminhar Alt+Tab, Alt+Esc, tecla Win e outros atalhos do sistema para o PC anfitrião. + Não perguntar para ativar o serviço de teclado + Ocultar a mensagem que aparece durante a transmissão com teclado físico enquanto o serviço de Acessibilidade está desativado. \ No newline at end of file diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index 422263a095..51f379afd6 100755 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -179,4 +179,14 @@ Sunet Surround 5.1 Sunet Surround 7.1 Folosește HEVC mereu (se poate bloca) + + Redirecționezi scurtăturile de sistem către PC? + Android interceptează scurtături precum Alt+Tab, Alt+Esc și tasta Win înainte să ajungă la gazdă. Pentru a le redirecționa, activează \"Artemis Physical keyboard\" în setările de Accesibilitate.\n\nDacă comutatorul nu rămâne activat, deschide pagina cu informații despre aplicație și permite setările restricționate, apoi revino la Accesibilitate. + Setări de accesibilitate + Informații aplicație + Nu mai afișa + Redirecționează scurtăturile de tastatură de sistem + Deschide setările de Accesibilitate pentru a activa serviciul de tastatură Artemis. Necesar pentru a redirecționa Alt+Tab, Alt+Esc, tasta Win și alte scurtături de sistem către PC-ul gazdă. + Nu întreba pentru activarea serviciului de tastatură + Ascunde mesajul afișat la difuzarea cu tastatură fizică atunci când serviciul de Accesibilitate este dezactivat. \ No newline at end of file diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 2eb455f4f7..8ecdef13e1 100755 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -676,4 +676,14 @@ По умолчанию 2D Включить полноэкранный режим Скрывать системные панели в режиме погружения + + Передавать системные сочетания клавиш на ПК? + Android перехватывает сочетания клавиш, такие как Alt+Tab, Alt+Esc и клавиша Win, до того как они достигнут хоста. Чтобы передавать их, включите \"Artemis Physical keyboard\" в настройках Специальных возможностей.\n\nЕсли переключатель не остаётся включённым, откройте страницу сведений о приложении и разрешите ограниченные настройки, затем вернитесь в Специальные возможности. + Спец. возможности + О приложении + Больше не показывать + Передавать системные сочетания клавиш + Открыть настройки Специальных возможностей, чтобы включить службу клавиатуры Artemis. Необходимо для передачи Alt+Tab, Alt+Esc, клавиши Win и других системных сочетаний на хост-ПК. + Не спрашивать о включении службы клавиатуры + Скрывает запрос, появляющийся при стриминге с физической клавиатурой, пока служба Специальных возможностей отключена. \ No newline at end of file diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ff183a3b10..d08687f387 100755 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -273,4 +273,14 @@ Använd en analog spak för att bläddra Aktivera commit-textinmatning (svep/röst) Vidarebefordra text i flera tecken från mjuka tangentbord (gestinmatning, förslag, röstdiktering). Kan störa spel som kräver tangent för tangent. + + Vidarebefordra systemgenvägar till datorn? + Android fångar upp genvägar som Alt+Tab, Alt+Esc och Win-tangenten innan de når värden. För att vidarebefordra dem, aktivera \"Artemis Physical keyboard\" i tillgänglighetsinställningarna.\n\nOm reglaget inte förblir aktiverat, öppna sidan med appinformation och tillåt begränsade inställningar, återgå sedan till Tillgänglighet. + Tillgänglighetsinställningar + Appinfo + Visa inte igen + Vidarebefordra systemtangentbordsgenvägar + Öppna Tillgänglighetsinställningar för att aktivera Artemis-tangentbordstjänsten. Krävs för att vidarebefordra Alt+Tab, Alt+Esc, Win-tangenten och andra systemgenvägar till värddatorn. + Fråga inte om att aktivera tangentbordstjänsten + Döljer meddelandet som visas vid streaming med fysiskt tangentbord medan Tillgänglighetstjänsten är inaktiverad. \ No newline at end of file diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index aaebdb2763..4eb69d628d 100755 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -274,4 +274,14 @@ Akış sırasında gerçek zamanlı akış performansı bilgilerini görüntüleyin Commit-text girişini etkinleştir (kaydırma/sesli) Yazılım klavyelerinden çok karakterli metni iletir (sürükleyerek yazma, tahminler, sesli dikte). Tuş bazlı girişe ihtiyaç duyan oyunlarda sorun yaratabilir. + + Sistem kısayolları PC\'ye iletilsin mi? + Android, Alt+Tab, Alt+Esc ve Win tuşu gibi kısayolları ana bilgisayara ulaşmadan önce yakalar. Bunları iletmek için Erişilebilirlik ayarlarında \"Artemis Physical keyboard\" seçeneğini etkinleştirin.\n\nDüğme açık kalmıyorsa uygulama bilgisi sayfasını açın ve kısıtlanmış ayarlara izin verin, ardından Erişilebilirlik\'e geri dönün. + Erişilebilirlik ayarları + Uygulama bilgisi + Tekrar gösterme + Sistem klavye kısayollarını ilet + Artemis klavye hizmetini etkinleştirmek için Erişilebilirlik ayarlarını açın. Alt+Tab, Alt+Esc, Win tuşu ve diğer sistem kısayollarının ana PC\'ye iletilmesi için gereklidir. + Klavye hizmetini etkinleştirmek için sorma + Erişilebilirlik hizmeti devre dışıyken fiziksel klavye ile yayın yaparken görünen istemi gizler. \ No newline at end of file diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 6285f2a102..4ca98488f8 100755 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -284,4 +284,14 @@ Затримка обробки хостом мін./макс./середня: %1$.1f/%2$.1f/%3$.1f мс Увімкнути commit-text ввід (свайп/голос) Пересилати багато-символьний текст з екранних клавіатур (жестове введення, підказки, голосовий ввід). Може порушити ігри, що покладаються на посимвольне введення. + + Передавати системні комбінації клавіш на ПК? + Android перехоплює комбінації клавіш, такі як Alt+Tab, Alt+Esc і клавішу Win, перш ніж вони досягнуть хоста. Щоб передавати їх, увімкніть \"Artemis Physical keyboard\" у налаштуваннях Спеціальних можливостей.\n\nЯкщо перемикач не залишається увімкненим, відкрийте сторінку інформації про застосунок і дозвольте обмежені налаштування, потім поверніться до Спеціальних можливостей. + Спеціальні можливості + Про застосунок + Більше не показувати + Передавати системні комбінації клавіш + Відкрити налаштування Спеціальних можливостей, щоб увімкнути службу клавіатури Artemis. Потрібно для передавання Alt+Tab, Alt+Esc, клавіші Win та інших системних комбінацій на хост-ПК. + Не запитувати про ввімкнення служби клавіатури + Приховує запит, що з\'являється під час стрімінгу з фізичною клавіатурою, коли службу Спеціальних можливостей вимкнено. \ No newline at end of file diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 2ae98a30c7..d583c45bbc 100755 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -638,4 +638,14 @@ Bật nhập commit-text (vuốt/giọng nói) Chuyển tiếp văn bản nhiều ký tự từ bàn phím ảo (gõ vuốt, gợi ý, nhập giọng nói). Có thể gây lỗi với trò chơi yêu cầu nhập từng phím. + + Chuyển tiếp phím tắt hệ thống đến PC? + Android chặn các phím tắt như Alt+Tab, Alt+Esc và phím Win trước khi chúng đến máy chủ. Để chuyển tiếp chúng, hãy bật \"Artemis Physical keyboard\" trong cài đặt Trợ năng.\n\nNếu công tắc không duy trì bật, hãy mở trang thông tin ứng dụng và cho phép cài đặt bị hạn chế, sau đó quay lại Trợ năng. + Cài đặt trợ năng + Thông tin ứng dụng + Không hiển thị lại + Chuyển tiếp phím tắt bàn phím hệ thống + Mở cài đặt Trợ năng để bật dịch vụ bàn phím Artemis. Cần thiết để chuyển tiếp Alt+Tab, Alt+Esc, phím Win và các phím tắt hệ thống khác đến PC máy chủ. + Không hỏi để bật dịch vụ bàn phím + Ẩn lời nhắc xuất hiện khi truyền phát với bàn phím vật lý trong khi dịch vụ Trợ năng bị tắt. \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 1f74cb1dcd..4bd5cd1b2a 100755 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -715,4 +715,14 @@ 启用全屏 使用沉浸模式隐藏系统状态栏 + + 将系统快捷键转发到 PC? + Android 会在 Alt+Tab、Alt+Esc 和 Win 键等快捷键到达主机之前拦截它们。要转发这些快捷键,请在无障碍设置中启用 \"Artemis Physical keyboard\"。\n\n如果开关无法保持启用,请打开应用信息页面并允许受限设置,然后返回到无障碍设置。 + 无障碍设置 + 应用信息 + 不再显示 + 转发系统键盘快捷键 + 打开无障碍设置以启用 Artemis 键盘服务。将 Alt+Tab、Alt+Esc、Win 键和其他系统快捷键转发到主机 PC 所必需。 + 不提示启用键盘服务 + 在无障碍服务被禁用时使用物理键盘进行串流时隐藏出现的提示。 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 7ff089b28c..c4fe098c99 100755 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -792,4 +792,14 @@ 啟用全螢幕 以沉浸模式隱藏系統列 + + 將系統快捷鍵轉發到 PC? + Android 會在 Alt+Tab、Alt+Esc 和 Win 鍵等快捷鍵到達主機之前攔截它們。若要轉發這些快捷鍵,請在無障礙設定中啟用 \"Artemis Physical keyboard\"。\n\n如果開關無法保持啟用,請開啟應用程式資訊頁面並允許受限設定,然後返回無障礙設定。 + 無障礙設定 + 應用程式資訊 + 不再顯示 + 轉發系統鍵盤快捷鍵 + 開啟無障礙設定以啟用 Artemis 鍵盤服務。將 Alt+Tab、Alt+Esc、Win 鍵和其他系統快捷鍵轉發到主機 PC 所必需。 + 不提示啟用鍵盤服務 + 在無障礙服務停用時使用實體鍵盤進行串流時隱藏出現的提示。 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 95f64c92a5..bb0a0a79d7 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -365,6 +365,16 @@ Artemis Physical keyboard Only used when physical keyboard shortcut were intercepted by system. In some systems, several keyboard shortcut are defind and used by the Android system, causing them not being able to be passed through to the host PC. Artemis will not look through your input, nor collecting your password, credit card number or any other private information. + Forward system shortcuts to PC? + Android intercepts shortcuts like Alt+Tab, Alt+Esc and the Win key before they reach the host. To forward them, enable \"Artemis Physical keyboard\" in Accessibility settings.\n\nIf the toggle does not stay on, open the app info page and allow restricted settings, then return to Accessibility. + Accessibility settings + App info + Don\'t show again + Forward system keyboard shortcuts + Open Accessibility settings to enable the Artemis keyboard service. Required to forward Alt+Tab, Alt+Esc, Win key and other system shortcuts to the host PC. + Don\'t prompt to enable keyboard service + Hide the prompt that appears when streaming with a physical keyboard while the Accessibility service is disabled. + Show soft keyboard diff --git a/app/src/main/res/xml/keyboard_accessibility_service.xml b/app/src/main/res/xml/keyboard_accessibility_service.xml index 22239ba5be..5f7a2c575d 100755 --- a/app/src/main/res/xml/keyboard_accessibility_service.xml +++ b/app/src/main/res/xml/keyboard_accessibility_service.xml @@ -3,9 +3,9 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:description="@string/accessibility_description_text" android:summary="@string/keyboard_service_label" - android:accessibilityEventTypes="typeContextClicked|typeViewClicked|typeViewFocused|typeViewScrolled|typeViewSelected|typeWindowContentChanged|typeWindowStateChanged" - android:accessibilityFeedbackType="feedbackAllMask" - android:accessibilityFlags="flagDefault|flagRequestFilterKeyEvents|flagRetrieveInteractiveWindows" + android:accessibilityEventTypes="typeWindowStateChanged" + android:accessibilityFeedbackType="feedbackGeneric" + android:accessibilityFlags="flagDefault|flagRequestFilterKeyEvents" android:canRequestFilterKeyEvents="true" android:canRetrieveWindowContent="true" android:notificationTimeout="50" diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 5b009c891f..da936137ba 100755 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -480,6 +480,17 @@ android:summary="@string/summary_enable_commit_text" android:title="@string/title_enable_commit_text" app:iconSpaceReserved="false" /> + + Date: Sat, 2 May 2026 06:18:09 +0300 Subject: [PATCH 2/2] Add troubleshooting steps for enabling keyboard accessibility service --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/README.md b/README.md index ac949c2a13..11a3a99b34 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,63 @@ The main repo had stayed silent for 5 months, with nobody actually responding to * In moonlight-android/, create a file called ‘local.properties’. Add an ‘ndk.dir=’ property to the local.properties file and set it equal to your NDK directory. * Build the APK using Android Studio or gradle +## Troubleshooting + +### Physical keyboard shortcuts (Alt+Tab, Win key, etc.) don't reach the host PC + +Android intercepts certain keyboard shortcuts (Alt+Tab, Alt+Esc, Win, Ctrl+Esc, etc.) at the system level — they never reach the streaming session by default. Artemis ships with a small Accessibility service (`Artemis Physical keyboard`) whose only job is to forward those events to the host while you're streaming. You only need this if you stream with a physical keyboard. + +Artemis will prompt you to enable this service the first time it detects a physical keyboard at app start. If you dismissed the prompt or want to enable it manually, there's also a button in **Settings → Input Settings → Forward system keyboard shortcuts**. + +#### 1. Normal path + +1. Open **Settings → Accessibility** on the device. +2. Find **Artemis Physical keyboard** in the list of installed services. +3. Toggle it on. Confirm the system warning about full device control. + +#### 2. If the toggle won't stay on + +On Android 13+, services in apps installed via sideload / ADB / Obtainium are blocked by **Restricted settings**. The toggle will appear to flip on, then quietly turn off again. + +To unblock: + +1. Open **Settings → Apps → Artemis** (the app's info page). +2. Tap the **⋮ (overflow menu)** in the top-right corner. +3. Choose **Allow restricted settings** (or **Restricted settings** → confirm). +4. Go back to **Accessibility** and toggle Artemis Physical keyboard on. + +#### 3. If "Allow restricted settings" doesn't appear (some OEMs hide it) + +Some custom Android skins (notably ZUI on Lenovo tablets) hide the **Allow restricted settings** entry entirely. Use ADB as a fallback: + +1. Enable **Developer options → USB debugging** on the device. +2. Connect the device to a PC with `adb` installed and run: + +```bash +# 1. Bypass the restricted-settings block for Artemis +adb shell appops set com.limelight.noir ACCESS_RESTRICTED_SETTINGS allow + +# 2. Capture the current list of enabled accessibility services (do not lose this) +adb shell settings get secure enabled_accessibility_services + +# 3. Append our service to that list (replace with the value from step 2; +# keep the colons separating each service) +adb shell settings put secure enabled_accessibility_services ":com.limelight.noir/com.limelight.KeyboardAccessibilityService" + +# 4. Toggle accessibility off/on so the service actually binds +adb shell settings put secure accessibility_enabled 0 +adb shell settings put secure accessibility_enabled 1 + +# 5. Verify the service is bound (look for "Artemis Physical keyboard" with capabilities=9) +adb shell dumpsys accessibility | grep "label=" +``` + +If you're using the debug build, replace `com.limelight.noir` with `com.limelight.noirdebug`. + +#### Why is this needed? + +Android does not provide a public API for an app to capture system-level keyboard shortcuts at the activity level. The only sanctioned way to intercept events like Alt+Tab before SystemUI consumes them is via an Accessibility service with `FLAG_REQUEST_FILTER_KEY_EVENTS`. Artemis uses this purely to forward keys to the host while a stream is active — it does not read on-screen text, monitor your input outside of streaming, or collect any data. + ## Authors * [Cameron Gutman](https://github.com/cgutman)