你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
友情提醒:源码购买后不支持退换货
* Author:pei * Date: 2019/8/23 */ public class IDataScan { private static final String RES_ACTION = "android.intent.action.SCANRESULT"; private ScannerInterface mScannerInterface; private Context mContext; private OnScanListener mOnScanListener; //注册广播接受者 private BroadcastReceiver mScanReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action=intent.getAction(); //注意Extral为"value" String scanResult = intent.getStringExtra("value"); if(RES_ACTION.equals(RES_ACTION)){ if(scanResult.length()>0){ //如果条码长度>0,解码成功,否则失败 if(mOnScanListener!=null){ mOnScanListener.scanSuccess(scanResult); } }else{//解码失败 mOnScanListener.scanFailed("解码失败"); } } } }; public void initScan(Context context,OnScanListener listener){ this.mContext=context; this.mOnScanListener=listener; mScannerInterface = new ScannerInterface(context); //设置扫描结果的输出模式 mScannerInterface.setOutputMode(1); IntentFilter filter=new IntentFilter(); filter.addAction(RES_ACTION); context.registerReceiver(mScanReceiver, filter); } public void destroy(){ LogUtil.i("=======注销idata品牌pda广播========="); if(mScanReceiver!=null&&mContext!=null) { mContext.unregisterReceiver(mScanReceiver); } } public interface OnScanListener{ void scanSuccess(String code); void scanFailed(String message); } } ``` ####三. 扫描在 MainActivity 中的使用 在MainActivity中使用扫描的时候,先要初始化 IDataScan 类 ``` mIDataScan=new IDataScan(); ``` 然后,调用IDataScan 的init方法,用于注册扫描广播并接收扫描结果返回值 ``` mIDataScan.initScan(this, new IDataScan.OnScanListener() { @Override public void scanSuccess(String code) { //解码成功 LogUtil.i("=======解码成功==gg===="+code); } @Override public void scanFailed(String message) { //解码失败 LogUtil.i("=======解码失败==gg===="+message); } }); ``` 当界面要退出的时候,注销扫描广播 ``` if (mIDataScan!=null){ mIDataScan.destroy(); } ``` 下面贴出MainActivity代码: ``` package com.example.testdemo; import android.os.Bundle; import android.view.View; import android.widget.TextView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import com.example.function.IDataScan; import com.util.LogUtil; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private TextView mTvText; private IDataScan mIDataScan; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initData(); setListener(); } private void initData() { mTvText = findViewById(R.id.tv_text); mTvText.setText("扫描结果:"); initScan(); } private void initScan(){ mIDataScan=new IDataScan(); mIDataScan.initScan(this, new IDataScan.OnScanListener() { @Override public void scanSuccess(String code) { //解码成功 LogUtil.i("=======解码成功==gg===="+code); mTvText.setText("扫描结果:"+code); } @Override public void scanFailed(String message) { //解码失败 LogUtil.i("=======解码失败==gg===="+message); mTvText.setText("扫描失败"); } }); } private void setListener() { } @Override public void onClick(View v) { } @Override protected void onDestroy() { super.onDestroy(); if (mIDataScan!=null){ mIDataScan.destroy(); } } } ``` ####四.效果图和项目结构图 效果图  项目结构图 
服务描述:微信加我验证时说明是:来自demo大师求助 服务范围:辅助将你有疑问的一个例子运行起来,并对该例子做技术方便的解答,服务时间为2天内,若需要其他特别需求或对从我这里下载的其他例子做解答价格另议
服务价格:¥50
我要联系