已经有java的第三方开源条形码识别库(zxing)了,在自己的应用中扫描条形码实际上只需调用该第三方库的实现即可。写扫描和识别条形码的android支持库的时候还没有g1手机,现在可以试试了。
为了能调用zxing,需要先安装google market中的barcode scanner:
程序很简陋,第一个界面:
第二个界面,跳到了zxing库提供的Activity去做条形码扫描,这里扫描的是生成QR二维条码中的本站url。
qr码瞬间就可以识别到,然后从zxing的Activity返回到程序中,显示条目内容:
编写代码很简单。
java代码:
package com.easymorse;
import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView;
public class ShowBarcodeActivity extends Activity implements OnClickListener {
private Button button;
private TextView textView;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
this.button = (Button) this.findViewById(R.id.Button01); this.button.setOnClickListener(this);
this.textView = (TextView) this.findViewById(R.id.hello); }
@Override public void onClick(View view) { Intent intent = new Intent(“com.google.zxing.client.android.SCAN”); intent.putExtra(“SCAN_MODE”, “QR_CODE_MODE”); this.startActivityForResult(intent, 0); }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode != 0) { return; }
this.textView.setText(data.getStringExtra(“SCAN_RESULT”)); } }
layout目录下面的main.xml:
http://schemas.android.com/apk/res/android” android:orientation=”vertical” android:layout_width=”fill_parent” android:layout_height=”fill_parent” > android:id=”@+id/hello” android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:text=”@string/hello” />
values目录下的strings.xml
目前没有扫描结果。 购物小参考 点击开始扫描…
从这个示例中也可以看到android强大的地方,可以复用(reuse)其他应用的服务(Service)或者Activity。