如何从偏好设置屏幕打开Android的文本转语音设置?

3

当我在应用程序设置中单击特定首选项时,我希望能够打开Android默认的TTS设置。我的pref_settings.xml如下所示:

     <PreferenceScreen
    android:key="Lang_Select"
    android:title="Language"
    android:summary="Select a Language">

</PreferenceScreen>

这是我的Android设置列表。我的SettingsActivity.java看起来像这样:
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);

}

public static class ChatSettingsFragment extends PreferenceFragmentCompat {

    @Override
    public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
        addPreferencesFromResource(R.xml.pref_settings);


    }
}

@Override
public void onBackPressed() {
    super.finish();
}

每当单击语言按钮时,我该如何启动Android默认的TTS设置?

谢谢。


通常情况下,您可以通过以下方式启动设置:startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS), 0);。有关不同操作类型,请参见此处:https://developer.android.com/reference/android/provider/Settings.html。我猜您需要的是 ACTION_VOICE_INPUT_SETTINGS,但我还没有测试过... - Opiatefuchs
@Opiatefuchs,我对这个还很陌生。你能帮我定义首选项列表的onClickListener吗?我应该在哪里添加代码来启动一个意图? - Anant Prasad
我已经尝试了,请看我的答案... - Opiatefuchs
2个回答

0

我之前没有使用过PreferenceFragmentCombat,只用过普通的PreferenceFragment,但我猜基本实现上并没有太大区别。所以请注意,这可能不是你问题的答案,但我会尽力帮助你,并展示一些代码。我在我的onCreate()方法中这样做:

public class PreferenceFragment extends android.preference.PreferenceFragment {

private Preference mYourPreference;

        @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preference_layout);

//initialize your preference with the key you used in xml layout
mYourPreference=(Preference)getPreferenceManager().findPreference(yourPreferenceKey);    

//set on click listener
mYourPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
            @Override
            public boolean onPreferenceClick(Preference preference) {

//start the activity
startActivity(new Intent(android.provider.Settings.ACTION_VOICE_INPUT_SETTINGS), 0);
                return true;
            }
        });

    }
}

我不确定ACTION_VOICE_INPUT_SETTINGS是否有效,你可以试一下。


@ Opiatefuchs 非常感谢您的帮助。上述代码解决了我打开安卓语音设置的目的。 - Anant Prasad
我使用了intent.setComponent(new ComponentName("com.android.settings","com.android.settings.S‌​ettings$InputMethodA‌​ndLanguageSettingsAc‌​tivity"))来打开语言和输入设置,但是对于文本转语音,我找不到任何东西。 - Anant Prasad
看看我找到了什么,也许会有帮助:https://dev59.com/dXA75IYBdhLWcg3wrrNS - Opiatefuchs
2
尝试使用“com.android.settings.TTS_SETTINGS”作为操作,在操作系统版本大于或等于5的设备上运行。 - Harsh kurra


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接