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>

これはAndroid2.xでうまく機能しますが、Android4.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?

どうしてこれなの?この手法を互換性のないものにするAndroid4(または3?)の変更点は何ですか?システムのTextToSpeechSettings設定画面の名前は変更されましたか?

また、マニフェストファイルとは何の関係もないと確信していますが、念のため、マニフェストに次のように追加しました。

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

そして、それは物事を変えませんでした。同じActivityNotFoundExceptionの問題。

説明を探していたところ、このスレッドが見つかりましたが、OSのバージョンの違いについては言及されていないため、ここに当てはまるかどうかはわかりません。

この問題を解決する理由と方法に関するヒントはありますか?

4

1 に答える 1

3

It appears that indeed this is an ICS issue as this answer suggests to use this code:

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 に答える