4

我正在使用以下技术将其添加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>

它在 Android 2.x 中运行良好,但在 Android 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?

为什么是这样?Android 4(或 3?)有什么变化使这种技术不兼容?系统的 TextToSpeechSettings 首选项屏幕的名称是否已更改?

另外,我很确定这与 Manifest 文件无关,但为了安全起见,我在 Manifest 中添加了:

  <activity android:name="com.android.settings.TextToSpeechSettings"
            android:label="Text-to-Speech Settings">
  </activity>

它并没有改变任何事情。同样的 ActivityNotFoundException 问题。

在我寻找解释的过程中,我找到了这个线程,但它没有提到任何操作系统版本差异,所以我不确定它是否适用于此。

关于为什么以及如何解决这个问题的任何提示?

4

1 回答 1

3

看来这确实是一个 ICS 问题,因为此答案建议使用此代码:

intent = new Intent();
intent.setAction("com.android.settings.TTS_SETTINGS");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
this.startActivity(intent);
于 2012-08-26T22:19:21.190 回答