Ответ 1
Если сканер штрих-кода 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 history
startActivityForResult(intent, 0);
и OnActivityResult
:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
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
}
}
}
Если его не установлено: u может поместить этот код в блок 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
, и приложение ur продолжает работать один раз, если установлен barcode scanner
.
Если вы не хотите использовать другое приложение в приложении ur, U нужно загрузить библиотеку zxing и попробовать использовать классы из файла core.jar(он создается с помощью apache ant). Следуйте этому руководству, чтобы сделать это: https://github.com/zxing/zxing/wiki/Getting-Started-Developing
Все варианты опций можно найти здесь: