Android快速实现手机号码识别OCR

在Android App中开发扫描手机号码、电话号码OCR功能,一般有多种方案选择:

1. 调用商业在线OCR接口

2. 集成商业离线OCR接口

3. 集成开源OCR接口

使用商业方案,效果较好,但是对于个人开发或者初创公司费用较高,不能承受。但是使用开源方案,识别效率和准确性需要花费大量的精力,往往项目周期不能得以保障。

所以这里介绍一种快速集成第三方APP OCR组件的方式,来实现扫描号码功能,快速简单,虽然APP整体显得不专业,但是快速实现一个复杂OCR功能,也是可以尝试一下:

首先看下DemoApp

Android快速实现手机号码识别OCR_第1张图片

比如上面DemoApp准备集成号码扫描功能,可以调用《号码扫描APP》的组件接口来跳转到《号码扫描》界面

Android快速实现手机号码识别OCR_第2张图片

在号码扫描App进行扫描结束后,通过点击“退出扫描”,然后再返回DemoApp界面

Android快速实现手机号码识别OCR_第3张图片

这样就在DemoApp中快速实现了号码扫描OCR功能。以下是DemoApp部分参考代码:

public class MainActivity extends ActionBarActivity {

    TextView textResult;
    Button buttonCall;
    TextView textNum;
    CheckBox checkBox;
    
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        switch (requestCode) {
            case 1:
                if(resultCode == RESULT_OK) {
                    textNum.setText(data.getStringExtra("result"));
                }
                break;
        }
    }
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        textResult = (TextView)this.findViewById(R.id.textViewResult);
        textNum = (TextView)this.findViewById(R.id.textViewNum);
        buttonCall = (Button)this.findViewById(R.id.buttonCall);
        checkBox = (CheckBox)this.findViewById(R.id.checkBoxMultiScan);
        
        buttonCall.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(Intent.ACTION_VIEW);

                String packageName = "com.dieqms.numscan";
                String className = "com.dieqms.numscan.MainActivity";
                intent.setClassName(packageName, className);

                Bundle bundle = new Bundle();
                bundle.putString("msg", "CallNumScan");
                
                if (checkBox.isChecked())
                    bundle.putString("type", "multi");
                else
                    bundle.putString("type", "single");
                
                intent.putExtras(bundle);
                intent.putExtra("pid", android.os.Process.myPid());
                intent.putExtra("uid", android.os.Process.myUid());
                startActivityForResult(intent, 1);
            }
        });
    }

以上就是通过Intent 调用《号码扫描APP》扫描功能的参考代码。

DemoApp源码以及开放OCR调用演示版《号码扫描APP》已放到网盘:
链接: https://pan.baidu.com/s/1L3qlnQqgbG4WEVVQbqUUKg 提取码: 2qc3

目前OCR调用演示版《号码扫描APP》仅是做了功能演示,里面加了对调用者APP包名限制,具体若需要项目APP合作,可以和我联系,微信号:dieqms 添加时说明《号码扫描APP》合作。

你可能感兴趣的:(OCR,号码扫描,Android)