我为Android创建了一个支持多种语言的文本到语音引擎,其中一种语言是印地语。
在Android文字转语音设置中,当用户选择默认语言环境时,Android会执行一系列检查,包括发送意图ACTION_GET_SAMPLE_TEXT
以下是我支持的语言环境列表:
private static final String[] SUPPORTED_LANGUAGES = { "eng-GBR", "eng-USA", "fra-FRA", "spa-ESP", "deu-DEU", "ita-ITA",
"kor-KOR", "nld-NLD", "dan-DNK", "fin-FIN", "jpn-JPN", "nor-NOR", "pol-POL", "por-PRT", "por-BRA", "rus-RUS",
"swe-SWE", "zho-CHN", "zho-HKG", "zho-TWN", "ara-SAU", "hi-IN", "ces-CZE", "ell-GRC", "hun-HUN", "ron-ROU",
"slk-SVK", "tha-THA", "tur-TUR", "cym-GBR", "isl-ISL", "in-IDN" };
对于" hi-IN"以外的每个区域设置,Android发送此意图,我回复示例文本和"听一个示例"按钮变得可用。
我已成功将LANG_COUNTRY_AVAILABLE从通话onIsLanguageAvailable转回{{3}},但按钮仍然显示为黑色,并表示该语言不受支持。
我尝试了很多不同的语言环境ISO组合:
hin-IN,hi-IND,ind-HI等等,但Android并没有发送Intent,尽管它在Locale列表中被正确标记为印地语(印度语)或只是印地语。
logcat中没有错误表明失败的变体匹配。
我发布我的代码没什么意义,因为Android根本没有发送此Locale的Intent,因此它无法访问我的代码....
如何正确处理此区域设置变体的任何想法?
编辑:我刚刚意识到它也发生在印尼语(in-IDN)