我使用以下技术将Text-to-Speech Settings
添加到我的应用程序的首选屏幕:
<Preference android:key="TTS Preferenes"
android:title="TTS Settings"
android:summary="A convenience shortcut instead of pressing HOME then Setting then scrolling down then pressing Text-to-Speech Settings">
<intent android:targetPackage="com.android.settings"
android:targetClass="com.android.settings.TextToSpeechSettings" />
</Preference>
它在安卓2.x中运行良好,但在安卓4.0.4中产生了一个异常:
E/AndroidRuntime(2663): android.content.ActivityNotFoundException:
Unable to find explicit activity class {com.android.settings/com.android.settings.TextToSpeechSettings};
have you declared this activity in your AndroidManifest.xml?
为什么会这样?安卓4(或3?)中发生了什么变化,导致该技术不兼容?系统的TextToSpeechSettings首选项屏幕的名称是否已更改?
此外,我很确定这与Manifest文件无关,但为了安全起见,我添加到Manifest:
<activity android:name="com.android.settings.TextToSpeechSettings"
android:label="Text-to-Speech Settings">
</activity>
这并没有改变任何事情。相同的ActivityNotFoundException问题。
在我寻找解释的过程中,我找到了这个线程,但它没有提到任何操作系统版本的差异,所以我不确定它是否适用于这里。
关于为什么以及如何解决这个问题,有什么建议吗?
这似乎确实是一个ICS问题,因为这个答案建议使用以下代码:
intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);