做一个扫码,当前具有焦点的输入框自动填充内容的功能。
1.通过广播/frameworks/base/core/java/androID/inputmethodservice/inputMethodService.java @OverrIDe public voID onCreate() { ... initVIEws(); mWindow.getwindow().setLayout(MATCH_PARENT, WRAP_CONTENT); // 注册广播 IntentFilter scanFilter = new IntentFilter(); registerReceiver(scanRecIEver,scanFilter ); } //添加自定义广播 private broadcastReceiver scanRecIEver = new broadcastReceiver () { @OverrIDe public voID onReceive(Context context, Intent intent) { inputConnection conn = getCurrentinputConnection(); String intent_data=intent.getStringExtra("data"); if (conn != null) { conn.commitText(intent_data,intent_data.length()); } } }
2.添加自定义方法frameworks/base/core/java/com/androID/internal/vIEw/IinputMethodManager.aIDl ... // 添加自定义方法 voID showtextFromUart(String data);}
frameworks/base/core/java/androID/vIEw/inputmethod/inputMethodManager.java public voID showtextFromUart(String uartData){ try { mService.showtextFromUart(uartData); } catch (remoteexception e) { Log.e(TAG, "showtextFromUart Failed " +e); } }
frameworks/base/services/core/java/com/androID/server/inputMethodManagerService.java public voID showtextFromUart(String data){ System.out.println("showtextFromUart "+mCurinputContext+" data ="+data); if (mCurinputContext != null) { try { mCurinputContext.commitText(data,data.length()); } catch (remoteexception e){ Slog.e(TAG," commitText Failed "+e); } } }
调用
inputMethodManager manager = (inputMethodManager)mContext.getSystemService(Context.input_METHOD_SERVICE); if (manager != null) { manager.showtextFromUart(msg.obj.toString()); }
InputConnection桥梁实现字符从输入法的字符输入到view显示
总结以上是内存溢出为你收集整理的Android 当前焦点输入框自动填充内容全部内容,希望文章能够帮你解决Android 当前焦点输入框自动填充内容所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)