我通过具有AppResources.resx
文件的通用PCL共享iOS和Android应用程序的翻译。我在 C# 代码中访问我的资源字符串,例如 AppResources.MyString
.
到目前为止,当我在我的 android 应用程序中引入辅助功能服务时,这一直运行良好。
对于辅助功能服务,我需要提供描述。我能找到的唯一文档总是显示此描述在accessibilityservice.xml
文件中设置,例如:
<?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" />
它绑定到服务,如下所示:
[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
{
...
}
显然,我无法从accessibilityservice.xml
文件中访问AppResources.MyAccessibilityDescString
,那么如何将可翻译的AppResources
字符串提供给无障碍服务说明?
我不想只在 android 项目中管理其他特定于 android 的字符串,而不是有一个公共的地方,我的翻译人员可以为应用程序设置所有字符串(AppResources.resx
)。
您无法获取 xml 文件中的AppResources.resx
内容。不幸的是,AccessibilityServiceInfo
的Description
属性是只读的。因此,您无法通过SetServiceInfo
方法设置值。
我能想到的唯一选择是在String.xml
文件中添加描述字符串。