Если сканер штрих-кода zxing установлен в мобильном телефоне, его очень просто:
Intent intent = new Intent(
"com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "PRODUCT_MODE");//for Qr code, its "QR_CODE_MODE" instead of "PRODUCT_MODE"
intent.putExtra("SAVE_HISTORY", false);//this stops saving ur barcode in barcode scanner app's history
startActivityForResult(intent, 0);
и в OnActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
String contents =
data.getStringExtra("SCAN_RESULT"); //this is the result
}
else if (resultCode == RESULT_CANCELED) {
// Handle cancel
}
Если он не установлен: вы можете поставитьэтот код в блоке try-catch и перехвата исключения, вы можете сделать это:
Uri marketUri = Uri
.parse("market://details?id=com.google.zxing.client.android");
Intent marketIntent = new Intent(Intent.ACTION_VIEW,
marketUri);
startActivity(marketIntent);
Таким образом, он перенаправляет приложение на Android Market, и ваше приложение продолжает работать один раз, если установлен сканер штрих-кода.
Если вы не хотите использовать другое приложение в вашем приложении, вам нужно скачать библиотеку zxing и попробовать использовать классы из файла core.jar (он создается с помощью apache ant).Следуйте этому руководству, чтобы сделать это: http://code.google.com/p/zxing/wiki/GettingStarted