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

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

1. 调用商业在线OCR接口

2. 集成商业离线OCR SDK

3. 集成开源OCR模块 (若需集成离线识别SDK,可参考https://blog.csdn.net/dieqms/article/details/110313067

 

使用商业方案,效果较好,但是对于个人开发或者初创公司费用较高,不能承受。

但是使用开源方案,识别效率和准确性需要花费大量的精力进行优化完善,往往项目周期不能得以保障。

这里介绍一种免费快速集成第三方APP OCR组件的方式,来实现扫描号码功能,快速简单:

             

首先看下DemoApp

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

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

这样就在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源码已放到网盘:
链接: https://pan.baidu.com/s/1L3qlnQqgbG4WEVVQbqUUKg 提取码: 2qc3

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值