android–TextToSpeech.setEngineByPackageName()即使在包不可用时也会返回成功

android–TextToSpeech.setEngineByPackageName()即使在包不可用时也会返回成功,第1张

概述在设法使TextToSpeech.setEngineByPackageName()工作得益于this answer之后,我现在遇到了“相反”的问题:tts.setEngineByPackageName( “com.ivona.tts.voicebeta.eng.usa.kendra”);始终返回TextToSpeech.SUCCESS,即使该设备中根本没有安

在设法使TextToSpeech.setEngineByPackagename()工作得益于this answer之后,我现在遇到了“相反”的问题:

tts.setEngineByPackagename( “com.ivona.tts.voicebeta.eng.usa.kendra”);始终返回TextToSpeech.SUCCESS,即使该设备中根本没有安装该软件包.

由于设备上没有该软件包,TTS会继续使用AndroID的默认pico,这是预期的,但我不明白为什么setEngineByPackagename()返回SUCCESS.

怎么会这样?

最佳答案为了所有人的利益,我发布了@Nikolay Elenkov提供的关于不同(但相关)问题的答案:

当包不存在时调用setEngineByPackagename()不是一个好主意.相反,检查它是否已安装,如果未安装则不要尝试使用它:

boolean isPackageInstalled(String packagename) {  PackageManager pm = context.getPackageManager();  try {    PackageInfo pi = pm.getPackageInfo(packagename,0);    return pi != null;  } catch (nameNotFoundException e) {    return false;  }}

如何做到这一点的一个很好的例子可以在以下方面看到:

http://code.google.com/p/wwwjdic/source/browse/branches/2.0/wwwjdic/src/org/nick/wwwjdic/TtsManager.java 总结

以上是内存溢出为你收集整理的android – TextToSpeech.setEngineByPackageName()即使在包不可用时也会返回成功全部内容,希望文章能够帮你解决android – TextToSpeech.setEngineByPackageName()即使在包不可用时也会返回成功所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139917.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存