B4A Library ZXingLib(integration version)by icefairy333

JTmartins

Active Member
Licensed User
Longtime User
Hi,

I'm using this lib and works extremly well.

I wonder if it is possible to add an extra argument to the zx.BeginScan so that it would be zx.BeginScan(EventName, StringToDisplay, color). Then during the scan process, on the top of the screen there will be a message in the specified color.

I'm a java dumb (and Basic half dumb) so I don't know how to implement this on the java source code and recompile the lib, but I think that it would be quite simple for someone with java knowledge.

In my case QRcode is used to read codes from teachers or students, and it would be extremly helpfull to have a message so the people know if the app is waiting for teacher or student input.

I've been using other method, but it always leads to confusion amongst users. So if I could have a message there, it would be perfect.

Anyone can help me ?

Thanks
José
 
Last edited:

Gaver Powers

Member
Licensed User
Longtime User
I'm getting the following error message:
java.lang.Exception: Sub myzx_cancelled signature does not match expected signature.
When I hit the back button during a scan operation.
Anyone have any suggestions on how to correct this?

GP

I figured it out...
Canceled is more common in American English, and cancelled is more common in British English.

Sub myzx_Canceled - fails
Sub myzx_Cancelled - works

G
 
Last edited:

Gaver Powers

Member
Licensed User
Longtime User
Ice,Johan,Jonedan,Vpire -
The donor ZXing jar used in this library is based on ZXing version 2.1
The current version on Git is now @ 3.1.1 - I believe the newer version provides faster scanning and includes painting the corner targets to aid with alignment of the target in the window during the scan process, there may be other improvements as well.

There are now several threads going with different modifications being made to the base ZXing code.
This thread incorporated the ability to rotate the scan window to portrait mode.
Johan's thread(s) are making substantial changes to the mask and in controlling the general appearance of the scanner itself.
and in another thread - the ability to use the front camera and turn on the light was enabled.

Is there a way anyone can update the library using the latest ZXing code from Git and incorporate all of the changes from all the other threads into one library?

Also... would it be possible to add the interfaces to a ZXing fork on Git and request they be incorporated in 3.1.2?

There's a lot of oars in the water - just trying to get them all on the same boat and rowing in the same direction

G
 

JTmartins

Active Member
Licensed User
Longtime User
Hi everyone.

I've been playing with the sources from this lib, compiling etc...(finaly learned how to compile with Eclipse to use in B4A). I need to enable flash in torch mode, however so far all attempts have failed. The lib keeps working perfectly...but no flash light.

I'm a java noob, but I'm slowly getting my way, and with some guidance I hope to get there.

If someone can help me I would be gratefull.

Many thanks
 

canalrun

Well-Known Member
Licensed User
Longtime User
Thanks for the 1.3 plus.

I will bet you developed the demo with B4A 4.0. I'm still using 3.82. I get newer version warnings when I open the demo. Also when I run the demo the bts (raw data) variable in the result subroutine is null generating an error. If I ignore the warnings and comment out the usage of the bts variable, it works nicely.

The red line is vertical when the phone is held in portrait. For it to recognize a barcode, the red line needs to cross the width of the entire barcode – the camera must be held in landscape for a horizontally oriented barcode, or if the barcode is vertically oriented the camera must be held in portrait mode.

Is there a way to change the scanning orientation (red line) between horizontal and vertical?

In my application I need a barcode reader/decoder that operates from a stored image rather than capturing an image from the camera. Instead of calling a "begin scan" method to open the camera I would call something like "decode bitmap" passing a bitmap (or filename) as the parameter.

I need this because the phone is fixed on a tripod monitoring packages. The packages can have the barcode positioned anywhere within the camera's field of view and there may be several packages, each with a barcode. I need to isolate the barcode of interest and feed that to the decoder.

Barry.
 

Lello1964

Well-Known Member
Licensed User
Longtime User
Hello, i want use this lib, i must set my app in portrait mode, how set barcode camera in portrait mode, i have changed in manifest, but camera doesn't change.
Can you help me?
Thanks
Raffaele
 

Johan Schoeman

Expert
Licensed User
Longtime User
Hi @icefairy333 (& others)

This post relates to your library and project posted in the very first post of this thread (i.e post #1). The torch would not come on in that project. So, I have amended your Library code slightly and recompiled the library so that the torch can be switched on/off with the volume up/down button when the scanner is active. Hope you don't mind. The new lib files (JHSICE.jar and JHSICE.xml) are in the /files folder of the attached project. Copy them to your additional library folder. Not sure if it will work for all devices but it does work on Samsumg S4 mini.

As per your original posting - nothing else required to get this to work. Just the new xml and jar files (and of course B4A core). Manifest of the attached project already has the necessary Android permissions included.

Torch should come on by default when the scanner is activated. Then use the volume up/down buttons to toggle the torch on/off.

EDIT:

Change the following in the manifest:

AddApplicationText(<activity android:name="ice.zxing.CaptureActivity"
android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>)

to

AddApplicationText(<activity android:name="ice.zxing.CaptureActivity"
android:screenOrientation="portrait" android:configChanges="orientation|keyboardHidden"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:windowSoftInputMode="stateAlwaysHidden">
</activity>)

Change the following at the top of the B4A project:

#Region Module Attributes
#FullScreen: False
#IncludeTitle: True
#ApplicationLabel: QR Code Scanner
#VersionCode: 1
#VersionName:
#SupportedOrientations: landscape
#CanInstallToExternalStorage: False
#End Region

to

#Region Module Attributes
#FullScreen: False
#IncludeTitle: True
#ApplicationLabel: QR Code Scanner
#VersionCode: 1
#VersionName:
#SupportedOrientations: portrait
#CanInstallToExternalStorage: False
#End Region

The view should then be correct (i.e top is top, bottom is bottom, left is left, right is right)

I have posted an upgraded version of the above project here
 

Attachments

  • IcefairyOrigWithTorch.zip
    416.5 KB · Views: 350
Last edited:

merlin2049er

Well-Known Member
Licensed User
Longtime User
I just download the library and demo last night. Seemed to work just fine. Move the begin scan to a button_click event and nothing happened.
 

Johan Schoeman

Expert
Licensed User
Longtime User
I just download the library and demo last night. Seemed to work just fine. Move the begin scan to a button_click event and nothing happened.
Can you upload the project?
 

merlin2049er

Well-Known Member
Licensed User
Longtime User
Here's the project. It's a little equipment check in/ check out app with a barcode scanner and a camera to capture a badge or business card.
Just started it.
 

Attachments

  • b4aEquipment.zip
    20.7 KB · Views: 242

Johan Schoeman

Expert
Licensed User
Longtime User
Will take a look at it in detail later today but I think you have the camera occupied with your code and then Zxing can't access the camera. If the original project that I have posted is working then your code is somewhere "interfering" with the Zxing scanner.
 

Johan Schoeman

Expert
Licensed User
Longtime User
Definitely got something to do with the way that you handle the camera within your code. If I comment out this:
Sub Activity_Resume
' InitializeCamera
End Sub

the scanner starts perfectly.
 
Last edited:

merlin2049er

Well-Known Member
Licensed User
Longtime User
Ok, I believe I need to separate the camera and barcode scanner into their own activities.
 

GaNdAlF89

Active Member
Licensed User
Longtime User
Thanks for library, I use this code but there is an error when I press on the back key:
B4X:
java.lang.NoSuchMethodError: anywheresoftware.b4a.BA.Log
What can I do? Thanks
 

Johan Schoeman

Expert
Licensed User
Longtime User

M.LAZ

Active Member
Licensed User
Longtime User
Hi @icefairy333 & every body here ..
post #127
i got this error when the capture done :
An Error has occured in Sub:
java.lang.NullPointerException Continue?
Thank you So much.
 
Last edited:
Cookies are required to use this site. You must accept them to continue using the site. Learn more…