Android 当前焦点输入框自动填充内容

os:mtk 8.1

一个扫码,当前具有焦点的输入框自动填充内容功能

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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...