ravi8x / barcode-reader Goto Github PK
View Code? Open in Web Editor NEWAndroid barcode reader using google vision library
License: BSD 3-Clause "New" or "Revised" License
Android barcode reader using google vision library
License: BSD 3-Clause "New" or "Revised" License
@ravi8x Ravi
Hi,Please let me how to solve this issue if possible.If fragment is resizing green color in right side of camera preview.
Do you have any plan to update SDK with camera2 API
Dear Ravi,
This library is really useful and I am able to incorporate in my project. I am using it to scan ISBN book barcodes (EAN13 format). Is there any way to restrict the bar codes recognised only to EAN13.
Thanks
Sanjay
How to disable scanner scan outside QR code??
Hi,
It seems that Camera permission is not working fine. When you run the app for first time you will always get black screen even approving Camera permission.
I tried to use this library on Samsung Galaxy S5 with Andorid 6.0.1 and I get following error:
java.lang.RuntimeException: startPreview failed at android.hardware.Camera.startPreview(Native Method) at info.androidhive.barcode.camera.CameraSource.start(CameraSource.java:380) at info.androidhive.barcode.camera.CameraSourcePreview.startIfReady(CameraSourcePreview.java:91) at info.androidhive.barcode.camera.CameraSourcePreview.access$200(CameraSourcePreview.java:33) at info.androidhive.barcode.camera.CameraSourcePreview$SurfaceCallback.surfaceCreated(CameraSourcePreview.java:114) at android.view.SurfaceView.updateWindow(SurfaceView.java:712) at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:209) at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1014) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2510) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1437) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7397) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:920) at android.view.Choreographer.doCallbacks(Choreographer.java:695) at android.view.Choreographer.doFrame(Choreographer.java:631) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:906) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:158) at android.app.ActivityThread.main(ActivityThread.java:7224) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
I am facing the below issue while using the google vision api for scanning qr code.
Detector processor must first be set with setProcessor in order to receive detection results. site:stackoverflow.com
can you please help me on this?
The camera preview is not opening at the first time, also I am unable to update the UI once the scan is successful.
Below is my code
{
private BusinessModel bmodel;
private DisplayMetrics displaymetrics;
private boolean is7InchTablet;
private SurfaceView surfaceView;
private BarcodeDetector barcodeDetector;
private CameraSource cameraSource;
private Button startVisit,btn_scan;
private Spinner reasonSpinnerForScanFailed,qrcodeTypeSpinner;
private boolean isScanSuccussfull;
private ArrayAdapter<ReasonMaster> reasonAdapterForScanFailed,adapterqrtype;
private String type = "0",reason = "0";
private SparseArray<Barcode> response;
private TextView tvresult;
private AlertDialog.Builder builder;
private AlertDialog alertDialog;
private static String TAG = "XCYCLE";
private boolean isCameraEnabled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qrcodescan);
bmodel = (BusinessModel) getApplicationContext();
bmodel.setContext(this);
Log.i(TAG, "onCreate()");
overridePendingTransition(R.anim.trans_left_in, R.anim.trans_left_out);
displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
is7InchTablet = this.getResources().getConfiguration().isLayoutSizeAtLeast(SCREENLAYOUT_SIZE_LARGE);
Toolbar toolbar = findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
if (getSupportActionBar() != null) {
getSupportActionBar().setDisplayShowTitleEnabled(false);
setScreenTitle("QR Code Scan");
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
}
}
startVisit = (Button)findViewById(R.id.save);
btn_scan = (Button)findViewById(R.id.scan);
tvresult = (TextView)findViewById(R.id.tvresult);
surfaceView = (SurfaceView)findViewById(R.id.cameraview);
reasonSpinnerForScanFailed = (Spinner)findViewById(R.id.reasonspinnerforscanfailed);
qrcodeTypeSpinner = (Spinner)findViewById(R.id.qrcodetypespinner);
startVisit.setOnClickListener(this);
btn_scan.setOnClickListener(this);
if(getIntent().getExtras() != null)
type = getIntent().getExtras().getString("type");
if(checkAndRequestPermissionAtRunTime(2))
startScan();
}
@Override
protected void onStart() {
super.onStart();
Log.i(TAG, "onStart()");
loadTypeSpinner();
loadReasonSpinner();
qrcodeTypeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
ReasonMaster qrtype = (ReasonMaster) adapterView.getSelectedItem();
type = qrtype.getReasonID();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
reasonSpinnerForScanFailed.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
ReasonMaster reasonMaster = (ReasonMaster) adapterView.getSelectedItem();
reason = reasonMaster.getReasonID();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});
}
private void startScan() {
try {
barcodeDetector = new BarcodeDetector.Builder(this).setBarcodeFormats(Barcode.QR_CODE).build();
cameraSource = new CameraSource.Builder(QRCodeScan.this, barcodeDetector)
.setRequestedPreviewSize(400, 400)
.build();
surfaceView.getHolder().addCallback(new SurfaceHolder.Callback2() {
@Override
public void surfaceRedrawNeeded(SurfaceHolder surfaceHolder) {
Toast.makeText(QRCodeScan.this, "surfaceRedrawNeeded()", Toast.LENGTH_LONG).show();
}
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
try {
Toast.makeText(QRCodeScan.this, "surfaceCreated()", Toast.LENGTH_LONG).show();
cameraSource.start(surfaceView.getHolder());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {
Toast.makeText(QRCodeScan.this, "surfaceChanged()", Toast.LENGTH_LONG).show();
}
@Override
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
Toast.makeText(QRCodeScan.this, "surfaceDestroyed()", Toast.LENGTH_LONG).show();
cameraSource.stop();
}
});
barcodeDetector.setProcessor(new Detector.Processor<Barcode>() {
@Override
public void release() {
}
@Override
public void receiveDetections(Detector.Detections<Barcode> detections) {
try
{
response = detections.getDetectedItems();
if (response != null && response.size() > 0) {
barcodeDetector.release();
isScanSuccussfull = true;
if (validateAndSave()) {
moveToHomeScreenTwo();
}
}
}catch (Exception e){
e.printStackTrace();
}
}
});
}catch (Exception e){
e.printStackTrace();
}
}
@Override
protected void onResume() {
super.onResume();
Log.i(TAG, "onResume()");
checkAndRequestPermissionAtRunTime(2);
int permissionStatus = ContextCompat.checkSelfPermission(this,
Manifest.permission.CAMERA);
if (permissionStatus == PackageManager.PERMISSION_GRANTED) {
startScan();
} else {
Toast.makeText(this,
getResources().getString(R.string.permission_enable_msg)
+ " " + getResources().getString(R.string.permission_camera)
, Toast.LENGTH_LONG).show();
}
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == android.R.id.home) {
startActivity(new Intent(this, ProfileActivity.class));
overridePendingTransition(R.anim.trans_right_in, R.anim.trans_right_out);
finish();
}
return super.onOptionsItemSelected(item);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.save: {
if (type.equals("0"))
Toast.makeText(QRCodeScan.this, getResources().getString(R.string.qr_type_alert), Toast.LENGTH_LONG).show();
else if(reason.equals("0")){
Toast.makeText(QRCodeScan.this, getResources().getString(R.string.qr_reason), Toast.LENGTH_LONG).show();
}else {
if(validateAndSave())
moveToHomeScreenTwo();
else
Toast.makeText(QRCodeScan.this, getResources().getString(R.string.qr_try_again), Toast.LENGTH_LONG).show();
}
}
case R.id.scan: {
if(checkAndRequestPermissionAtRunTime(2)) {
if (!type.isEmpty() && !type.equals("0"))
startScan();
else
Toast.makeText(QRCodeScan.this, getResources().getString(R.string.qr_type_alert), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(this,getResources().getString(R.string.qr_camera_permission),Toast.LENGTH_LONG).show();
}
}
}
}
private void moveToHomeScreenTwo(){
Toast.makeText(QRCodeScan.this, "Scanned Success", Toast.LENGTH_LONG);
Intent i = new Intent(this, HomeScreenTwo.class);
i.putExtra("isLocDialog", true);
i.putExtra("isMandatoryDialog", true);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(i);
finish();
}
private boolean validateAndSave(){
String val = "";
try{
if(isScanSuccussfull)
val = response.valueAt(0).displayValue;
if(bmodel.getAppDataProvider().getRetailMaster().getListOfQRCodeValues() == null)
return bmodel.qrCodeHelper.saveQRCodeScannedData(type, val, reason , "I");
else if(!val.isEmpty() && !bmodel.getAppDataProvider().getRetailMaster().getListOfQRCodeValues().contains(val)) {
isScanSuccussfull = false;
return false;
}else
return bmodel.qrCodeHelper.saveQRCodeScannedData(type, val, reason, "A");
}catch (Exception e){
e.printStackTrace();
return false;
}
}
private void loadReasonSpinner(){
try{
reasonAdapterForScanFailed = new ArrayAdapter<>(this,
R.layout.call_analysis_spinner_layout);
reasonAdapterForScanFailed.add(new ReasonMaster(0 + "", getResources().getString(R.string.select_reason)));
if (bmodel.qrCodeHelper.getQrCodeReasons() != null) {
for (ReasonMaster temp : bmodel.qrCodeHelper.getQrCodeReasons())
reasonAdapterForScanFailed.add(temp);
reasonAdapterForScanFailed.add(new ReasonMaster(-1 + "", getResources().getString(R.string.other_reason)));
}
reasonAdapterForScanFailed.setDropDownViewResource(R.layout.call_analysis_spinner_list_item);
reasonSpinnerForScanFailed.setAdapter(reasonAdapterForScanFailed);
}catch (Exception e){
e.printStackTrace();
}
}
private void loadTypeSpinner(){
try{
adapterqrtype = new ArrayAdapter<>(this,
R.layout.call_analysis_spinner_layout);
adapterqrtype.add(new ReasonMaster(0 + "", getResources().getString(R.string.qr_hint_type)));
if (bmodel.qrCodeHelper.getQrCodeReasons() != null) {
for (ReasonMaster temp : bmodel.qrCodeHelper.getQrCodeTypes())
adapterqrtype.add(temp);
}
adapterqrtype.setDropDownViewResource(R.layout.call_analysis_spinner_list_item);
qrcodeTypeSpinner.setAdapter(adapterqrtype);
}catch (Exception e){
e.printStackTrace();
}
}
private void openCamera(){
try{
cameraSource.start(surfaceView.getHolder());
}catch (Exception e){
e.printStackTrace();
}
}
}
The camera is distorted, I keep hearing the beep multiple times and the result is not showing up, I am testing on an ISBN code
Hello,
I have been using your library for barcode scanning in my project.
But I am not able to set a drawable file for scanning line. Can you please let me know that whether I can set it or not ? And If I can set then how ?
Thanks
I want to change the barcode scanner a little bit to the top and I want to add borders. How to achieve it?
I configured the project based on the instruction in the readme file and am getting the following error
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.barcode_reader2/com.example.barcode_reader2.MainActivity}: java.lang.ClassCastException: info.androidhive.barcode.BarcodeReader cannot be cast to com.example.barcode_reader2.BarcodeReader
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6077)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
Caused by: java.lang.ClassCastException: info.androidhive.barcode.BarcodeReader cannot be cast to com.example.barcode_reader2.BarcodeReader
at com.example.barcode_reader2.MainActivity.onCreate(MainActivity.java:22)
at android.app.Activity.performCreate(Activity.java:6662)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599)
How do i resolve this
Actually (info.androidhive:barcode-reader:1.1.5), the autofocus can't be set from code.
Can you add something like setAutofocus(true/false) ?
If that can help, now I use this workaround:
public static class BarcodeReaderEx extends BarcodeReader{
public BarcodeReaderEx(){
super();
setAutofocus(true);
}
public void setAutofocus(boolean autofocus){
//this.autoFocus = autofocus;
try {
Field f = BarcodeReader.class.getDeclaredField("autoFocus"); //NoSuchFieldException
f.setAccessible(true);
f.setBoolean(this,autofocus);
//Boolean af = (Boolean) f.get(this); //IllegalAccessException
}catch(Exception ignore){
}
}
}
In some Xiaomi lollipop verison device permission can be denied. If permission denied in those device app crashed.
Tested device:
Model: Redmi Note 3
OS: 5.1.1 LMY47V
How to avoid of scanning qr out of ScannerOverlay.My scanner is scanner everywhere not in the center.
Since the other issue didn't get much attention I opened this one. Is it possible to manually(=programmatically) activate the flash light? I want to toggle it via a button.
Thanks!
hi Ravi, any way to switch to the front camera? I am using the fragment method.
Thank you.
I am getting issues with this library since JCenter() and Bintray were put out service. Will you do the migration to mavencentral or jitpack anytime soon. Thanks
Is this working on Android 11 and above device ?
Galaxy Tab E version 5.1.1 Camera focus mode: is not supported on this device, not read qrcode
I want it only scan qr-code inside ScannerOverlay
can you help me?
Hi.
With new version of gradle build tools got this exception
'com.android.tools.build:gradle:4.1.0'
E/UncaughtException: java.lang.RuntimeException: Unable to destroy activity {view.activity.ActivityBarcodeReader}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Thread$State java.lang.Thread.getState()' on a null object reference
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5111)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5140)
at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:44)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.Thread$State java.lang.Thread.getState()' on a null object reference
at info.androidhive.barcode.camera.CameraSource$FrameProcessingRunnable.release(CameraSource.java:1102)
at info.androidhive.barcode.camera.CameraSource.release(CameraSource.java:327)
at info.androidhive.barcode.camera.CameraSourcePreview.release(CameraSourcePreview.java:83)
at info.androidhive.barcode.BarcodeReader.onDestroy(BarcodeReader.java:303)
at androidx.fragment.app.Fragment.performDestroy(Fragment.java:2830)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1028)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2659)
at androidx.fragment.app.FragmentManagerImpl.dispatchDestroy(FragmentManagerImpl.java:2644)
at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:329)
at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:366)
at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:242)
at view.activity.ActivityBase.onDestroy(ActivityBase.kt:162)
please fix layout scanner, layout scanner cant full screen in constrain layout
I am having API 25, and on this level, the library doesn't seem to work. Seems to be a backward compatibility issue
How to set add shadow for TicketView
Hello, The Mobile vision library 11.0.2 you are using is preventing me from using other libraries .... and the libraries needs to have the same version number.....
How can I gt it to work with other libraries that requires 11.8.0 google services or so
Hi,
i use your library in a fragment that implements BarcodeReader.BarcodeReaderListener, but your code search for listener in the Main Activity...
How to use it directly from fragment ?
The first time you install the application it seems stuck because it's downloading some module for the barcode reader.
Depending on network conditions this might take a while.
Device - Samsung Galaxy S9
Here is the logcat -
2019-05-17 17:09:52.031 16354-16354/? E/Zygote: isWhitelistProcess - Process is Whitelisted
2019-05-17 17:09:52.032 16354-16354/? E/Zygote: accessInfo : 1
2019-05-17 17:09:52.033 16354-16354/? I/SELinux: SELinux: seapp_context_lookup: seinfo=default, level=s0:c512,c768, pkgname=com.em.scannerApp
2019-05-17 17:09:52.036 16354-16354/? I/orphis.sensori: Late-enabling -Xcheck:jni
2019-05-17 17:09:52.073 16354-16354/? D/TimaKeyStoreProvider: TimaKeyStore is not enabled: cannot add TimaSignature Service and generateKeyPair Service
2019-05-17 17:09:52.096 16354-16354/? W/ActivityThread: Application com.em.scannerApp is waiting for the debugger on port 8100...
2019-05-17 17:09:52.099 16354-16354/? I/System.out: Sending WAIT chunk
2019-05-17 17:09:52.101 16354-16361/? E/orphis.sensori: Unable to peek into adb socket due to error. Closing socket.: Connection reset by peer
2019-05-17 17:10:23.007 16354-16354/com.em.scannerApp I/System.out: Debugger has connected
2019-05-17 17:10:23.008 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:23.209 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:23.720 16354-16354/com.em.scannerApp I/chatty: uid=10276(com.em.scannerApp) identical 2 lines
2019-05-17 17:10:23.923 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:24.124 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:24.325 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:24.527 16354-16354/com.em.scannerApp I/chatty: uid=10276(com.em.scannerApp) identical 1 line
2019-05-17 17:10:24.729 16354-16354/com.em.scannerApp I/System.out: waiting for debugger to settle...
2019-05-17 17:10:24.932 16354-16354/com.em.scannerApp I/System.out: debugger has settled (1401)
2019-05-17 17:10:24.951 16354-16354/com.em.scannerApp D/ConnectivityManager_URSP: Ursp sIsUrsp=false, sIsCheckUrsp=false, uid=10276
2019-05-17 17:10:24.968 16354-16354/com.em.scannerApp D/Proxy: urspP is null: 10276
2019-05-17 17:10:26.180 16354-16354/com.em.scannerApp I/orphis.sensori: The ClassLoaderContext is a special shared library.
2019-05-17 17:10:26.640 16354-16354/com.em.scannerApp W/orphis.sensori: JIT profile information will not be recorded: profile file does not exits.
2019-05-17 17:10:26.649 16354-16354/com.em.scannerApp I/chatty: uid=10276(com.em.scannerApp) identical 10 lines
2019-05-17 17:10:26.650 16354-16354/com.em.scannerApp W/orphis.sensori: JIT profile information will not be recorded: profile file does not exits.
2019-05-17 17:10:26.679 16354-16354/com.em.scannerApp I/InstantRun: starting instant run server: is main process
2019-05-17 17:10:28.806 16354-16354/com.em.scannerApp W/orphis.sensori: Verification of void android.support.v4.app.SupportActivity.() took 995.600ms
2019-05-17 17:10:29.720 16354-16354/com.em.scannerApp W/orphis.sensori: Verification of void android.support.v4.app.SupportActivity.onCreate(android.os.Bundle) took 506.369ms
2019-05-17 17:10:29.743 16354-16836/com.em.scannerApp D/libEGL: loaded /vendor/lib64/egl/libGLES_mali.so
2019-05-17 17:10:29.977 16354-16354/com.em.scannerApp W/orphis.sensori: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2019-05-17 17:10:29.978 16354-16354/com.em.scannerApp W/orphis.sensori: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2019-05-17 17:10:30.091 16354-16354/com.em.scannerApp D/OpenGLRenderer: Skia GL Pipeline
2019-05-17 17:10:30.102 16354-16354/com.em.scannerApp D/EmergencyMode: [EmergencyManager] android createPackageContext successful
2019-05-17 17:10:30.129 16354-16354/com.em.scannerApp D/InputTransport: Input channel constructed: fd=78
2019-05-17 17:10:30.130 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: setView = DecorView@23e3114[SplashActivity] TM=true MM=false
2019-05-17 17:10:30.145 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: dispatchAttachedToWindow
2019-05-17 17:10:30.170 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x7 surface={valid=true 509319888896} changed=true
2019-05-17 17:10:30.183 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2019-05-17 17:10:30.184 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@23e3114[SplashActivity]
2019-05-17 17:10:30.184 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:30.186 16354-16843/com.em.scannerApp I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
2019-05-17 17:10:30.186 16354-16843/com.em.scannerApp I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
2019-05-17 17:10:30.186 16354-16843/com.em.scannerApp I/OpenGLRenderer: Initialized EGL, version 1.4
2019-05-17 17:10:30.186 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@23e3114[SplashActivity]
2019-05-17 17:10:30.186 16354-16843/com.em.scannerApp D/OpenGLRenderer: Swap behavior 2
2019-05-17 17:10:30.186 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:30.186 16354-16354/com.em.scannerApp V/InputMethodManager: Starting input: tba=com.em.scannerApp ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2019-05-17 17:10:30.187 16354-16354/com.em.scannerApp D/InputMethodManager: startInputInner - Id : 0
2019-05-17 17:10:30.187 16354-16354/com.em.scannerApp I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2019-05-17 17:10:30.191 16354-16369/com.em.scannerApp D/InputTransport: Input channel constructed: fd=86
2019-05-17 17:10:30.192 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@23e3114[SplashActivity]
2019-05-17 17:10:30.192 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:30.192 16354-16354/com.em.scannerApp V/InputMethodManager: Starting input: tba=com.em.scannerApp ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2019-05-17 17:10:30.193 16354-16354/com.em.scannerApp D/InputMethodManager: startInputInner - Id : 0
2019-05-17 17:10:30.198 16354-16843/com.em.scannerApp D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2019-05-17 17:10:30.198 16354-16843/com.em.scannerApp D/OpenGLRenderer: eglCreateWindowSurface = 0x767dbfaa00, 0x7695d4c010
2019-05-17 17:10:31.324 16354-16843/com.em.scannerApp I/OpenGLRenderer: Davey! duration=1128ms; Flags=0, IntendedVsync=403142314108299, Vsync=403142314108299, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=403142316318842, AnimationStart=403142316684573, PerformTraversalsStart=403142316727304, DrawStart=403142321165073, SyncQueued=403142332334457, SyncStart=403142332419957, IssueDrawCommandsStart=403142332467727, SwapBuffers=403143439896726, FrameCompleted=403143442642764, DequeueBufferDuration=1271000, QueueBufferDuration=364000,
2019-05-17 17:10:31.406 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: MSG_RESIZED: frame=Rect(0, 0 - 1080, 2220) ci=Rect(0, 63 - 0, 126) vi=Rect(0, 63 - 0, 126) or=1
2019-05-17 17:10:34.126 16354-16354/com.em.scannerApp W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@309577b
2019-05-17 17:10:34.126 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2019-05-17 17:10:34.127 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@23e3114[SplashActivity]
2019-05-17 17:10:34.127 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:34.426 16354-16354/com.em.scannerApp D/InputTransport: Input channel constructed: fd=94
2019-05-17 17:10:34.427 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: setView = DecorView@b103d61[ScannerActivity] TM=true MM=false
2019-05-17 17:10:34.457 16354-16354/com.em.scannerApp D/SurfaceView: onWindowVisibilityChanged(0) true 2a3e086 of ViewRootImpl@b50e8c8[ScannerActivity]
2019-05-17 17:10:34.459 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: dispatchAttachedToWindow
2019-05-17 17:10:34.498 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x7 surface={valid=true 509319299072} changed=true
2019-05-17 17:10:34.503 16354-16843/com.em.scannerApp D/mali_winsys: EGLint new_window_surface(egl_winsys_display *, void *, EGLSurface, EGLConfig, egl_winsys_surface **, EGLBoolean) returns 0x3000
2019-05-17 17:10:34.503 16354-16843/com.em.scannerApp D/OpenGLRenderer: eglCreateWindowSurface = 0x767d53f600, 0x7695cbc010
2019-05-17 17:10:34.528 16354-16354/com.em.scannerApp D/SurfaceView: show() Surface(name=SurfaceView - com.em.scannerApp/com.em.scannerApp.activities.ScannerActivity@2a3e086@0[16354])/@0xbd39d47 android.view.SurfaceView{2a3e086 V.E...... ......ID 0,0-3819,2031}
2019-05-17 17:10:34.539 16354-16354/com.em.scannerApp D/SurfaceView: surfaceCreated 1 #8 android.view.SurfaceView{2a3e086 V.E...... ......ID 0,0-3819,2031}
2019-05-17 17:10:34.540 16354-16354/com.em.scannerApp D/SurfaceView: surfaceChanged (3819,2031) 1 #8 android.view.SurfaceView{2a3e086 V.E...... ......ID 0,0-3819,2031}
2019-05-17 17:10:34.559 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x3 surface={valid=true 509319299072} changed=false
2019-05-17 17:10:34.625 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: MSG_RESIZED_REPORT: frame=Rect(0, 0 - 1080, 2220) ci=Rect(0, 63 - 0, 126) vi=Rect(0, 63 - 0, 126) or=1
2019-05-17 17:10:34.643 16354-16354/com.em.scannerApp D/InputTransport: Input channel destroyed: fd=86
2019-05-17 17:10:35.083 16354-16843/com.em.scannerApp W/libEGL: EGLNativeWindowType 0x7695d4c010 disconnect failed
2019-05-17 17:10:35.083 16354-16843/com.em.scannerApp D/OpenGLRenderer: eglDestroySurface = 0x767dbfaa00, 0x7695d4c000
2019-05-17 17:10:35.097 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x5 surface={valid=false 0} changed=true
2019-05-17 17:10:35.101 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: Surface release. android.view.WindowManagerGlobal.setStoppedState:669 android.app.Activity.performStop:7646 android.app.ActivityThread.callActivityOnStop:4352 android.app.ActivityThread.performStopActivityInner:4330 android.app.ActivityThread.handleStopActivity:4405 android.app.servertransaction.TransactionExecutor.performLifecycleSequence:192 android.app.servertransaction.TransactionExecutor.cycleToPath:165 android.app.servertransaction.TransactionExecutor.executeLifecycleState:142
2019-05-17 17:10:35.111 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: dispatchDetachedFromWindow
2019-05-17 17:10:35.112 16354-16354/com.em.scannerApp D/ViewRootImpl@5825f67[SplashActivity]: Surface release. android.view.ViewRootImpl.doDie:7931 android.view.ViewRootImpl.die:7899 android.view.WindowManagerGlobal.removeViewLocked:497 android.view.WindowManagerGlobal.removeView:435 android.view.WindowManagerImpl.removeViewImmediate:124 android.app.ActivityThread.handleDestroyActivity:4722 android.app.servertransaction.DestroyActivityItem.execute:39 android.app.servertransaction.TransactionExecutor.executeLifecycleState:145
2019-05-17 17:10:35.116 16354-16354/com.em.scannerApp D/InputTransport: Input channel destroyed: fd=78
2019-05-17 17:10:38.050 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: Relayout returned: old=[0,0][1080,2220] new=[0,0][1080,2220] result=0x1 surface={valid=true 509319299072} changed=false
2019-05-17 17:10:38.056 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2019-05-17 17:10:38.056 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@b103d61[ScannerActivity]
2019-05-17 17:10:38.056 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:38.060 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@b103d61[ScannerActivity]
2019-05-17 17:10:38.060 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:38.060 16354-16354/com.em.scannerApp V/InputMethodManager: Starting input: tba=com.em.scannerApp ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2019-05-17 17:10:38.061 16354-16354/com.em.scannerApp D/InputMethodManager: startInputInner - Id : 0
2019-05-17 17:10:38.061 16354-16354/com.em.scannerApp I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2019-05-17 17:10:38.063 16354-16354/com.em.scannerApp D/InputTransport: Input channel constructed: fd=92
2019-05-17 17:10:38.082 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: MSG_WINDOW_FOCUS_CHANGED 0 1
2019-05-17 17:10:38.082 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@b103d61[ScannerActivity]
2019-05-17 17:10:38.082 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:38.147 16354-16354/com.em.scannerApp D/InputTransport: Input channel destroyed: fd=92
2019-05-17 17:10:40.187 16354-16354/com.em.scannerApp D/ViewRootImpl@b50e8c8[ScannerActivity]: MSG_WINDOW_FOCUS_CHANGED 1 1
2019-05-17 17:10:40.197 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@b103d61[ScannerActivity]
2019-05-17 17:10:40.198 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:40.205 16354-16354/com.em.scannerApp D/InputMethodManager: prepareNavigationBarInfo() DecorView@b103d61[ScannerActivity]
2019-05-17 17:10:40.205 16354-16354/com.em.scannerApp D/InputMethodManager: getNavigationBarColor() -855310
2019-05-17 17:10:40.206 16354-16354/com.em.scannerApp V/InputMethodManager: Starting input: tba=com.em.scannerApp ic=null mNaviBarColor -855310 mIsGetNaviBarColorSuccess true , NavVisible : true , NavTrans : false
2019-05-17 17:10:40.206 16354-16354/com.em.scannerApp D/InputMethodManager: startInputInner - Id : 0
2019-05-17 17:10:40.206 16354-16354/com.em.scannerApp I/InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
2019-05-17 17:10:40.209 16354-16354/com.em.scannerApp D/InputTransport: Input channel constructed: fd=92
2019-05-17 17:10:40.211 16354-16354/com.em.scannerApp E/BarcodeReader: createCameraSource:
2019-05-17 17:10:40.219 16354-16354/com.em.scannerApp W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite.barcode not found.
2019-05-17 17:10:40.229 16354-16354/com.em.scannerApp I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite.barcode:0 and remote module com.google.android.gms.vision.dynamite.barcode:0
2019-05-17 17:10:40.229 16354-16354/com.em.scannerApp D/BarcodeNativeHandle: Cannot load feature, fall back to load whole module.
2019-05-17 17:10:40.232 16354-16354/com.em.scannerApp W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite not found.
2019-05-17 17:10:40.240 16354-16354/com.em.scannerApp W/orphis.sensori: Unsupported class loader
2019-05-17 17:10:40.946 16354-16354/com.em.scannerApp W/orphis.sensori: Skipping duplicate class check due to unsupported classloader
2019-05-17 17:10:40.951 16354-16354/com.em.scannerApp I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:2501
2019-05-17 17:10:40.951 16354-16354/com.em.scannerApp I/DynamiteModule: Selected remote version of com.google.android.gms.vision.dynamite, version >= 2501
2019-05-17 17:10:40.951 16354-16354/com.em.scannerApp V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils
2019-05-17 17:10:41.005 16354-16354/com.em.scannerApp W/ChimeraDebugLogger: Singleton logger instance not set.
2019-05-17 17:10:41.014 16354-16354/com.em.scannerApp W/orphis.sensori: Unsupported class loader
2019-05-17 17:10:41.174 16354-16354/com.em.scannerApp I/Vision: Loading library libbarhopper.so
2019-05-17 17:10:41.988 16354-16354/com.em.scannerApp I/orphis.sensori: The ClassLoaderContext is a special shared library.
2019-05-17 17:10:42.951 16354-16354/com.em.scannerApp I/orphis.sensori: The ClassLoaderContext is a special shared library.
2019-05-17 17:10:43.931 16354-16354/com.em.scannerApp I/orphis.sensori: The ClassLoaderContext is a special shared library.
2019-05-17 17:10:47.085 16354-16354/com.em.scannerApp W/orphis.sensori: Accessing hidden method Ldalvik/system/VMRuntime;->getRuntime()Ldalvik/system/VMRuntime; (light greylist, reflection)
2019-05-17 17:10:47.085 16354-16354/com.em.scannerApp W/orphis.sensori: Accessing hidden method Ldalvik/system/VMRuntime;->is64Bit()Z (light greylist, reflection)
2019-05-17 17:10:47.137 16354-16354/com.em.scannerApp W/linker: Warning: "/data/data/com.google.android.gms/app_vision/barcode/libs/arm64-v8a/libbarhopper.so" unused DT entry: unknown processor-specific (type 0x7ffffffd arg 0x6dd) (ignoring)
2019-05-17 17:10:48.213 16354-16354/com.em.scannerApp I/Vision: libbarhopper.so library load status: true
2019-05-17 17:10:48.298 16354-16354/com.em.scannerApp I/DynamiteModule: Considering local module com.google.android.gms.flags:3 and remote module com.google.android.gms.flags:3
2019-05-17 17:10:48.299 16354-16354/com.em.scannerApp I/DynamiteModule: Selected local version of com.google.android.gms.flags
2019-05-17 17:10:48.404 16354-16919/com.em.scannerApp E/Camera_APM :: [APM]APM's Thread is started
2019-05-17 17:10:48.405 16354-16919/com.em.scannerApp E/Camera_APM :: [APM] This app is forground app
2019-05-17 17:10:48.746 16354-16354/com.em.scannerApp I/Choreographer: Skipped 512 frames! The application may be doing too much work on its main thread.
2019-05-17 17:10:48.759 16354-16354/com.em.scannerApp D/SurfaceView: show() Surface(name=SurfaceView - com.em.scannerApp/com.em.scannerApp.activities.ScannerActivity@2a3e086@0[16354])/@0xbd39d47 android.view.SurfaceView{2a3e086 V.E...... ......ID 0,0-1523,2031}
2019-05-17 17:10:48.774 16354-16354/com.em.scannerApp D/SurfaceView: surfaceChanged (1523,2031) 1 #5 android.view.SurfaceView{2a3e086 V.E...... ......ID 0,0-1523,2031}
2019-05-17 17:10:48.796 16354-16843/com.em.scannerApp I/OpenGLRenderer: Davey! duration=8595ms; Flags=0, IntendedVsync=403152319002169, Vsync=403160852335161, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=403160864888944, AnimationStart=403160864955444, PerformTraversalsStart=403160864957752, DrawStart=403160903019060, SyncQueued=403160909455137, SyncStart=403160909549444, IssueDrawCommandsStart=403160909801790, SwapBuffers=403160911673944, FrameCompleted=403160914327906, DequeueBufferDuration=446000, QueueBufferDuration=909000,
2019-05-17 17:10:48.892 16354-16910/com.em.scannerApp W/orphis.sensori: Accessing hidden field Ljava/nio/Buffer;->address:J (light greylist, reflection)
Hi Ravi,
Thank you for this insanely good library!
I've been using your library for QR code scanning/reading and I have run it on KF tablet. Initially, it didn't run because as you have known KF amazon tablet is de-googled and it has no default Google play services app installed but I have managed to install it manually through Google play store. Now, the app is running but it is showing a weird green stripe stuff at the top and it doesn't scan the QR code properly.
Please see below the snapshot attached.
Please advise as to how to resolve this issue.
Thank you very much!
Cheers,
Christian
Need help on this asap plz
Duplicate class android.support.design.widget.CoordinatorLayout found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$1 found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$Behavior found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$DefaultBehavior found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$DispatchChangeEvent found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$HierarchyChangeListener found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$LayoutParams found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$OnPreDrawListener found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$SavedState found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$SavedState$1 found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Duplicate class android.support.design.widget.CoordinatorLayout$ViewElevationComparator found in modules classes.jar (com.android.support:coordinatorlayout:28.0.0) and classes.jar (com.android.support:design:27.0.0)
Go to the documentation to learn how to Fix dependency resolution errors.
I am getting this exception from my Google Developer Console. Is I am the only one who is facing this issue
java.lang.RuntimeException:
at android.hardware.Camera. (Camera.java:584)
at android.hardware.Camera.open (Camera.java:397)
at info.androidhive.barcode.camera.CameraSource.createCamera (CameraSource.java:749)
at info.androidhive.barcode.camera.CameraSource.start (CameraSource.java:378)
at info.androidhive.barcode.camera.CameraSourcePreview.startIfReady (CameraSourcePreview.java:91)
at info.androidhive.barcode.camera.CameraSourcePreview.access$200 (CameraSourcePreview.java:33)
at info.androidhive.barcode.camera.CameraSourcePreview$SurfaceCallback.surfaceCreated (CameraSourcePreview.java:114)
at android.view.SurfaceView.updateWindow (SurfaceView.java:675)
at android.view.SurfaceView$3.onPreDraw (SurfaceView.java:185)
at android.view.ViewTreeObserver.dispatchOnPreDraw (ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2050)
at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1117)
at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6184)
at android.view.Choreographer$CallbackRecord.run (Choreographer.java:773)
at android.view.Choreographer.doCallbacks (Choreographer.java:586)
at android.view.Choreographer.doFrame (Choreographer.java:556)
at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:759)
at android.os.Handler.handleCallback (Handler.java:739)
at android.os.Handler.dispatchMessage (Handler.java:95)
at android.os.Looper.loop (Looper.java:135)
at android.app.ActivityThread.main (ActivityThread.java:5421)
at java.lang.reflect.Method.invoke (Native Method)
at java.lang.reflect.Method.invoke (Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:914)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:707)
I have installed the example application and works fine on my Nexus 5 but it does not work on my Huawei P10 Lite (WAS-LX1AC432B198).
The activity works fine, I even see the camera working good but there is no beep and no text scan.
There is no functionality for flash light on during scan
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.