Tôi cố gắng để Tích hợp ZXing QR Code vào ứng dụng Android của tôi mà không cần cài đặt ứng dụng máy quét mã vạch, tôi đã làm theo các bước như sau:Tích hợp máy quét mã QR ZXing mà không cần cài đặt mã vạch Máy quét
1) Trước hết Tôi đã tải ZXing.zip và giải nén nó
2) mở dự án ZXing làm dự án Android hiện có rồi truy cập thư mục android và mở thư mục android và cũng bao gồm tệp core.jar vào dự án ZXing có tên CaptureActivity.
3) Tôi đã sử dụng dự án CaptureActivity làm thư viện trong dự án có tên 'QRCodeSample'. (vấn đề trong đó có CaptureActivity như một thư viện)
4) Mã của tôi là như below3:
public class QRCodeSampleActivity extends Activity {
Button b1;
static String contents;
public static final int REQUEST_CODE = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
b1 = (Button) findViewById(R.id.button1);
b1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
/*Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("com.google.zxing.client.android.SCAN.SCAN_MODE",
"QR_CODE_MODE");
startActivityForResult(intent, 0);*/
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent, 0);
}
});
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
contents = intent.getStringExtra("SCAN_RESULT");
String format = intent.getStringExtra("SCAN_RESULT_FORMAT");
Log.i("Barcode Result", contents);
Intent i1 = new Intent(QRCodeSampleActivity.this, webclass.class);
startActivity(i1);
// Handle successful scan
} else if (resultCode == RESULT_CANCELED) {
// Handle cancel
Log.i("Barcode Result","Result canceled");
}
}
}
}
Các file manifest là:
<uses-permission android:name="android.permission.CAMERA"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity android:name="com.google.zxing.client.android.CaptureActivity"
android:screenOrientation="landscape"
android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
<intent-filter>
<action android:name="com.google.zxing.client.android.SCAN"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity
android:label="@string/app_name"
android:name=".QRCodeSampleActivity" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".webclass"></activity>
</application>
</manifest>
và thư viện không thêm nó cũng
Khi tôi đang cố gắng ru n dự án của tôi, thông báo lỗi là:
Không thể khởi tạo hoạt động ComponentInfo {com.qr.code/com.qr.code}: java.lang.ClassNotFoundException: com.qr.code trong bộ nạp dalvik.system.PathClassLoader [/data/app/com.qr.code-1.apk]
Để bao gồm ZXing, tôi có thể tạo nó. Tôi nghĩ bạn sử dụng một số lớp khác. Tôi không thể nhớ rằng zxing sử dụng không gian tên com.qr.code – rekire
Tại sao bạn sử dụng dự án thư viện. Bạn có thể xây dựng thư viện zxing đã tải xuống vào tệp jar bằng cách sử dụng kiến và bao gồm tệp jar đó vào dự án của bạn. Đây là liên kết cho các hướng dẫn http://code.google.com/p/zxing/wiki/GettingStarted – blessenm
Bạn có chắc chắn rằng điều này cũng hoạt động cho Android không? Tôi đã tạo lib của riêng mình với một số tiện ích mở rộng tùy chỉnh. – rekire