从Preferences XML启动Settings Activity在2.x中有效,但在4.x中无效



我使用以下技术将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);

相关内容

最新更新