この質問はAndroid2.2のみを対象としています。
次のスクリーンショットは、インストールされている3つの異なるテキスト読み上げエンジンを示しています。
- PIco TTS(Froyo 2.2現在のAndroidのデフォルト)
- IVONAテキスト読み上げ本部
- SVOXクラシックTTS
このスクリーンショットでは、3つすべてがチェックされている(有効になっている)わけではないことがわかります。代わりに、IVONAはチェックされておらず、Pico(ハードコードされているため暗黙的に)とSVOX(チェックされている)のみが残ります。
特定のTTSエンジン(IVONAなど)がチェックされているかどうかをアプリケーションからプログラムで照会できるようにしたいと思います(もちろん、コーディング時にパッケージ名がわかっていると仮定します)。
Android 2.2では、 Picoがデフォルトとして選択され、SVOXがチェックされてgetDefaultEngine()
いる状況では、実際には役に立ちません(つまり、 Picoがデフォルトである場合にSVOXがチェックされていることをどのように知ることができますか?)
Android 2.2でそれを達成するにはどうすればよいですか?
これは可能ですか?
PS Android 4.x(API> = 14)はgetEngines()を導入しました。これにより、この問題はICS +で解決されたと思われるかもしれませんが、詳しく調べると次のことがわかります。
- getEngines()は、インストールされているパッケージのみを一覧表示し、チェックされていない(有効な)パッケージは一覧表示しません。
- リストされた各パッケージに付属するEngineInfoは、名前、ラベル、アイコン、優先度、およびそれがシステムイメージの一部であるかどうかのみを提供します。つまり、Android2.2と同じ制限です。