下面列出了怎么用com.google.zxing.integration.android.IntentIntegrator的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
if(result.getContents() != null) {
try {
Protocol.Transaction transaction = Protocol.Transaction.parseFrom(Hex.decode(result.getContents()));
if(getContext() != null) {
ConfirmTransactionActivity.start(getContext(), transaction);
}
} catch (InvalidProtocolBufferException | DecoderException ignored) { }
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
mQR_Button = view.findViewById(R.id.Sign_qr_imageButton);
mQR_Button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
IntentIntegrator integrator = IntentIntegrator.forSupportFragment(SignFragment.this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE);
integrator.setPrompt(getString(R.string.scan_transaction_qr_code));
integrator.setCameraId(0);
integrator.setBeepEnabled(false);
integrator.setOrientationLocked(true);
integrator.setCaptureActivity(CaptureActivityPortrait.class);
integrator.initiateScan();
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(IntentIntegrator.REQUEST_CODE, resultCode, data);
if(result != null) {
if(result.getContents() != null) {
switch (requestCode) {
case ADDRESS_REQUEST_CODE:
mPublicAddress_EditText.setText(result.getContents());
break;
case PRIV_KEY_REQUEST_CODE:
mPrivateKey_EditText.setText(result.getContents());
break;
default:
super.onActivityResult(requestCode, resultCode, data);
}
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
if (requestCode == IntentIntegrator.REQUEST_CODE) {
// 扫描二维码回传值
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
String ewmString = result.getContents();
Intent mintent = new Intent(MainActivity.this, QuickWebLoader.class);
QuickBean bean = new QuickBean(ewmString);
mintent.putExtra("bean", bean);
startActivity(mintent);
}
}
}
@Override
public void onClick(View v) {
if (textBack.equals(v)) {
finish();
} else if (textScan.equals(v)) {
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
//integrator.setCameraId(0); // Use a specific camera of the device
integrator.setBeepEnabled(true);
integrator.setOrientationLocked(false);
integrator.setBarcodeImageEnabled(true);
integrator.setPrompt("请将条码置于取景框内扫描");
integrator.initiateScan();
} else if (btnSave.equals(v)) {
save();
} else if (btnReset.equals(v)) {
save();
AppExitUtil.restart(this);
} else if (btnOpen.equals(v)) {
String page = editOpen.getText().toString().trim();
UWXJumpUtil.openPage(this, page);
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
createWeexInstance();
renderPage();
break;
case R.id.action_scan:
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
//integrator.setCameraId(0); // Use a specific camera of the device
integrator.setBeepEnabled(true);
integrator.setOrientationLocked(false);
integrator.setBarcodeImageEnabled(true);
integrator.setPrompt(getString(R.string.capture_qrcode_prompt));
integrator.initiateScan();
break;
case android.R.id.home:
finish();
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != Activity.RESULT_OK) {
return;
}
if (requestCode == IntentIntegrator.REQUEST_CODE) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
if(result.getContents() == null) {
Toast.makeText(this, "扫码取消!", Toast.LENGTH_SHORT).show();
} else {
mInputTextTV.setText(result.getContents());
}
}
}
}
/**
* This method handles the communication to the ZXING API -> Apache License 2.0
* For more information please check out the link below.
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
public void zxingScan(){
IntentIntegrator integrator = new IntentIntegrator(activity);
integrator.setDesiredBarcodeFormats(IntentIntegrator.ALL_CODE_TYPES);
integrator.setPrompt((String) getResources().getText(R.string.xzing_label));
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
String camera_setting = prefs.getString("pref_camera", "");
if(camera_setting.equals("1")){
integrator.setCameraId(1);
} else {
integrator.setCameraId(0);
}
integrator.setOrientationLocked(false);
integrator.setBeepEnabled(false);
integrator.setBarcodeImageEnabled(false);
try {
integrator.initiateScan();
} catch (ArithmeticException e){
}
}
public void onClickBarCode(View v) {
try {
HelperPermission.getCameraPermission(G.currentActivity, new OnGetPermission() {
@Override
public void Allow() throws IOException, IllegalStateException {
IntentIntegrator integrator = IntentIntegrator.forSupportFragment(fragmentPaymentBill);
integrator.setDesiredBarcodeFormats(IntentIntegrator.CODE_128);
integrator.setRequestCode(requestCodeBarcode);
integrator.setBeepEnabled(false);
integrator.setPrompt("");
integrator.initiateScan();
}
@Override
public void deny() {
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case requestCodePaymentCharge:
case requestCodePaymentBill:
getPaymentResultCode(resultCode, data);
break;
case requestCodeQrCode:
IntentResult result = IntentIntegrator.parseActivityResult(resultCode, data);
if (result.getContents() != null) {
new RequestUserVerifyNewDevice().verifyNewDevice(result.getContents());
}
break;
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CAMERA: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
new IntentIntegrator(activity).initiateScan();
} else {
toast("Without camera permission we cannot scan a barcode");
}
return;
}
}
}
public void scan() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(activity.getApplicationContext(),
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
} else {
new IntentIntegrator(activity).initiateScan();
}
} else {
new IntentIntegrator(activity).initiateScan();
}
}
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_CAMERA: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
new IntentIntegrator(activity).initiateScan();
} else {
toast("Without camera permission we cannot scan a barcode");
}
return;
}
}
}
public void scan() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (ContextCompat.checkSelfPermission(activity.getApplicationContext(),
Manifest.permission.CAMERA)
!= PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.CAMERA},
MY_PERMISSIONS_REQUEST_CAMERA);
} else {
new IntentIntegrator(activity).initiateScan();
}
} else {
new IntentIntegrator(activity).initiateScan();
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
val scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (scanResult == null || scanResult.getContents() == null) {
return;
}
if (scanResult.getFormatName().equals("QR_CODE")) {
try {
BlueJay.processQRCode(scanResult.getRawBytes());
} catch (Exception e) {
// meh
}
}
}
/**
* Receives value of scanned QR code and sets it as device ID.
*/
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
String deviceId = scanResult.getContents();
if (!isBlank(deviceId)) {
Log.i("Main", "qrcode text = " + deviceId);
importDeviceId(deviceId);
return;
}
}
if (resultCode == Activity.RESULT_OK) {
Uri fileUri = intent.getData();
doUpload(indexBrowser.getFolder(), indexBrowser.getCurrentPath(), Arrays.asList(fileUri));
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if (result != null) {
//if QRcode has nothing in it
if (result.getContents() != null) {
//if QRCode contains data
//retrieve results
String resultContents = result.getContents();
String[] values = resultContents.split(":");
String userName = values[0];
String userEmail = values[1];
addContact(userName, userEmail);
}
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
createWeexInstance();
renderPage();
break;
case R.id.action_scan:
IntentIntegrator integrator = new IntentIntegrator(this);
integrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
integrator.setPrompt("Scan a barcode");
//integrator.setCameraId(0); // Use a specific camera of the device
integrator.setBeepEnabled(true);
integrator.setOrientationLocked(false);
integrator.setBarcodeImageEnabled(true);
integrator.initiateScan();
//scanQrCode();
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case IntentIntegrator.REQUEST_CODE:
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
QrCodeHandler qrCodeHandler = new QrCodeHandler(this);
qrCodeHandler.onScanPerformed(scanResult);
break;
case REQUEST_RELAY:
if (resultCode == RESULT_OK) {
handleResetRelaying();
setResult(RESULT_OK);
finish();
}
break;
default:
break;
}
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult != null) {
Gson gson = new Gson();
try {
BackendSettings backendSettings = gson.fromJson(scanResult.getContents().toString(), BackendSettings.class);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putString("host", backendSettings.getHost());
editor.putString("authkey", backendSettings.getAuth());
editor.putBoolean("useSSL", backendSettings.getSsl());
editor.commit();
Toast.makeText(getApplicationContext(),"Success!", Toast.LENGTH_SHORT).show();
refreshValues();
} catch (Exception e){
Toast.makeText(getApplicationContext(),"QR Code: Wrong data!", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if ((scanResult != null) && (scanResult.getContents() != null)) {
String data = scanResult.getContents();
if (data.equals(Base64.encodeBytes(getIdentityKeyToCompare().serialize()))) {
Dialogs.showInfoDialog(this, getVerifiedTitle(), getVerifiedMessage());
} else {
Dialogs.showAlertDialog(this, getNotVerifiedTitle(), getNotVerifiedMessage());
}
} else {
Toast.makeText(this, R.string.KeyScanningActivity_no_scanned_key_found_exclamation,
Toast.LENGTH_LONG).show();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
new IntentIntegrator((Activity) mWXSDKInstance.getContext()).setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
.setBeepEnabled(false).setCaptureActivity(CustomCaptureActivity.class)
.initiateScan();
// mWXSDKInstance.getContext().startActivity(new Intent(mWXSDKInstance.getContext(), CaptureActivity.class));
} else {
Toast.makeText(mWXSDKInstance.getContext(), "request camara permission fail!", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_refresh:
if (!TextUtils.equals(sCurrentIp, DEFAULT_IP)) {
createWeexInstance();
renderPageByURL(getIndexUrl());
mProgressBar.setVisibility(View.VISIBLE);
}
break;
case R.id.action_scan:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.CAMERA)) {
Toast.makeText(this, "please give me the permission", Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE);
}
} else {
new IntentIntegrator(this).setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
.setBeepEnabled(false).setCaptureActivity(CustomCaptureActivity.class)
.initiateScan();
// startActivity(new Intent(this, CaptureActivity.class));
}
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
new IntentIntegrator(this).setDesiredBarcodeFormats(IntentIntegrator.QR_CODE)
.setBeepEnabled(false).setCaptureActivity(CustomCaptureActivity.class)
.initiateScan();
} else {
Toast.makeText(this, "request camara permission fail!", Toast.LENGTH_SHORT).show();
}
} else if (requestCode == WRITE_EXTERNAL_STORAGE_PERMISSION_REQUEST_CODE
&& grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
}
}
@Override
protected void onResume() {
super.onResume();
// 创建IntentIntegrator对象
IntentIntegrator intentIntegrator = new IntentIntegrator(ScanActivity.this);
intentIntegrator.setPrompt("开始扫描");
intentIntegrator.setTimeout(5*1000);
intentIntegrator.setBeepEnabled(false);
// 开始扫描
intentIntegrator.initiateScan();
}
/**
* @return A click listener that launches QR code scanner
*/
public static View.OnClickListener makeBarcodeClickListener(final Activity activity) {
return v -> {
Intent intent = new IntentIntegrator(activity).createScanIntent();
try {
activity.startActivityForResult(intent, EntitySelectActivity.BARCODE_FETCH);
} catch (ActivityNotFoundException anfe) {
Toast.makeText(activity,
Localization.get("barcode.reader.missing"),
Toast.LENGTH_LONG).show();
}
};
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
try {
IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, intent);
if (scanResult == null)
return;
parseTokenOrUri(scanResult.getContents().trim());
} catch (PushfishException e) {
Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
} catch (NullPointerException ignore) {
}
}
@Override
protected void performCallout() {
if (this.intent == null) {
this.intent = new IntentIntegrator((Activity)getContext()).createScanIntent();
}
super.performCallout();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
if(result != null) {
addFriend(result.getContents());
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
public BarcodeWidget(Context context, FormEntryPrompt prompt, PendingCalloutInterface pendingCalloutInterface,
String appearance, FormDef formDef) {
super(context, prompt, null, pendingCalloutInterface,
"intent.barcode.get", "intent.barcode.update", "barcode.reader.missing",
appearance != null && appearance.contains("editable"), appearance, formDef);
// this has to be done after call to super in order to be able to access getContext()
this.intent = new IntentIntegrator((Activity)getContext()).createScanIntent();
}