2017-01-31 1 views
0

Ich teile Übersetzungen für meine iOS und Android-Apps über eine gemeinsame PCL, die AppResources.resx Dateien hat. Ich greife auf meine Ressourcen-Zeichenfolgen in C# -Code wie AppResources.MyString.Teilen Gemeinsame AppResource Strings mit Android Accessibility Service

Das hat gut funktioniert, bis jetzt, als ich einen Zugänglichkeitsdienst in meine Android-App eingeführt habe.

Mit dem Zugänglichkeitsdienst muss ich eine Beschreibung bereitstellen. Die einzige Dokumentation ich finden kann, zeigt immer diese Beschreibung in der accessibilityservice.xml-Datei festgelegt werden, wie:

<?xml version="1.0" encoding="utf-8" ?> 
<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android" 
    android:accessibilityEventTypes="typeWindowStateChanged|typeWindowContentChanged" 
    android:accessibilityFeedbackType="feedbackSpoken" 
    android:accessibilityFlags="flagDefault" 
    android:notificationTimeout="100" 
    android:canRetrieveWindowContent="true" 
    android:description="@string/accessibility_service_description" /> 

, die an den Dienst wie gebunden ist:

[Service(Permission = "android.permission.BIND_ACCESSIBILITY_SERVICE", Label = "MyApp")] 
[IntentFilter(new string[] { "android.accessibilityservice.AccessibilityService" })] 
[MetaData("android.accessibilityservice", Resource = "@xml/accessibilityservice")] 
public class AutofillService : AccessibilityService 
{ 
    ... 
} 

Natürlich kann ich nicht AppResources.MyAccessibilityDescString Zugriff aus der accessibilityservice.xml Datei , also wie stelle ich meine übersetzbare AppResources Zeichenfolge zur Accessibility Service Beschreibung zur Verfügung?

Ich würde es hassen, andere androidspezifische Zeichenfolgen im android-Projekt verwalten zu müssen, anstatt einen gemeinsamen Platz zu haben, können meine Übersetzer alle Zeichenfolgen für die App einstellen (AppResources.resx).

Antwort

1

Sie können den AppResources.resx Inhalt nicht in XML-Datei abrufen. Und leider ist die Description Eigenschaft von AccessibilityServiceInfo nur lesbar. Sie können den Wert also nicht über die Methode SetServiceInfo festlegen.

Die einzige Option, die ich denken kann, ist die Beschreibung Zeichenfolge in der Datei String.xml hinzuzufügen.

Verwandte Themen