gpt4 book ai didi

Android - 在用户启用输入法后关闭 IME 设置 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:07 25 4
gpt4 key购买 nike

在用户启用了特定的 IME(或者可能只是任何 IME,如果这是唯一的可能性)之后,我如何关闭 IME 设置 Activity (ACTION_INPUT_METHOD_SETTINGS),就像 Google 键盘一样。

我都试过了:

Intent enableIntent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS);
//enableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivityForResult(enableIntent, 0);

和:

Intent enableIntent = new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS);
enableIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(enableIntent);

但是一旦选择/启用了某个项目,它就无法返回调用 Activity 。

Google 键盘会打开 IME 输入设置屏幕,一旦启用键盘(单击复选框),设置 Activity 就会关闭,用户会返回到之前的向导 Activity 。

最佳答案

我也很难尝试解决这个问题。直到我意识到我可以检查 AOSP 实现 here .具体来说,检查 SetupWizardActivity .在我看来,Google 启动了一个 Handler 来轮询状态。具体来说,尝试遵循 SettingsPoolingHandler#handleMessage

具体来说:

    step1.setAction(new Runnable() {
@Override
public void run() {
invokeLanguageAndInputSettings();
handler.startPollingImeSettings();
}
});


public void startPollingImeSettings() {
sendMessageDelayed(obtainMessage(MSG_POLLING_IME_SETTINGS),
IME_SETTINGS_POLLING_INTERVAL);
}

@Override
public void handleMessage(final Message msg) {
final SetupWizardActivity setupWizardActivity = getOwnerInstance();
if (setupWizardActivity == null) {
return;
}
switch (msg.what) {
case MSG_POLLING_IME_SETTINGS:
if (UncachedInputMethodManagerUtils.isThisImeEnabled(setupWizardActivity,
mImmInHandler)) {
setupWizardActivity.invokeSetupWizardOfThisIme();
return;
}
startPollingImeSettings();
break;
}
}


void invokeSetupWizardOfThisIme() {
final Intent intent = new Intent();
intent.setClass(this, SetupWizardActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
| Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
mNeedsToAdjustStepNumberToSystemState = true;
}

关于Android - 在用户启用输入法后关闭 IME 设置 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com