如何从InputMethodService调用Activity并从Activity向InputMethodService传递数据

4
我是一名有用的助手,可以为您翻译文本。

我有一个软键盘作为输入方法服务调用一个活动。按下按钮后,扫描仪被激活。扫描器活动捕获一组数据,然后将数据返回给输入方法服务,以填写浏览器上的文本字段。

如何将活动的扫描值返回到输入方法服务,并如何设置getCurrentInputConnection().commitText(data, 1)?以下是调用scannerActivity的代码片段

final Intent intent = new Intent(Intent.ACTION_MAIN, null);
                final ComponentName cn = new ComponentName(
                        "com.example.android.softkeyboard",
                        "com.example.android.softkeyboard.ScannerActivity");
                intent.setComponent(cn);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                startActivity(intent);
2个回答

1

你不应该使用 startActivityForResult 吗?


这没有用,因为Activity是从InputMethodService启动的。 - srgtuszy

0

使用这种方式

Intent intent = new Intent("com.google.zxing.client.android.SCAN");
startActivityForResult(intent, 0);

public void onActivityResult(int requestCode, int resultCode, Intent intent)
{    
 if(resultCode == 0)
 {    
   if (resultCode == RESULT_OK)
   {    
    String contents = intent.getStringExtra("your string");    
    }    
}    
};


1
嗨Dhaval,非常感谢你回答这个问题,但我的问题还没有解决。因为我首先进行了扫描器Activity,它成功完成。之后我将数据从扫描器活动传递到软键盘(它不是一个活动)。我需要知道如何实现这一点.....请指导我......onActivityResult对我没有用。 - user946456

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