我正在制作自定义键盘应用。
有一个按钮将用户从应用到Input Method Settings
。
这是目的:
startActivityForResult(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS), 2000);
现在,有没有办法在启用键盘后将用户返回活动?
编辑
有没有一种方法可以设置广播电台并在用户在警告窗口上单击"确定"按钮时注册?然后应用可以调用super.onresume()恢复活动。
startActivityForResult(new Intent(Settings.ACTION_INPUT_METHOD_SETTINGS).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK).addFlags
(Intent.FLAG_ACTIVITY_CLEAR_TASK), 2000);
这应该有效,但请注意,Intent.FLAG_ACTIVITY_CLEAR_TASK
Requeries> = 11 API级
因此,我只是催生了一个intentservice,同时启动"设置菜单"来听更改。我相信这也是Swiftkey的完成方式。
public class MyService extends IntentService {
/**
* Creates an IntentService
*/
public MyService() {
super("MyService");
}
@Override
protected void onHandleIntent(Intent intent) {
String packageLocal = getPackageName();
boolean isInputDeviceEnabled = false;
while(!isInputDeviceEnabled) {
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> list = inputMethodManager.getEnabledInputMethodList();
// check if our keyboard is enabled as input method
for(InputMethodInfo inputMethod : list) {
String packageName = inputMethod.getPackageName();
if(packageName.equals(packageLocal)) {
isInputDeviceEnabled = true;
}
}
}
// open activity
Intent newIntent = new Intent(this, MainActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(newIntent);
}
}