How to scan a QR code using Google Glass?

2019-02-05 03:34发布

问题:

I want to create a Google glass application in which i want to scan a QR code.

I went through this post but i couldn't get clear idea.

Read QR code

Can anyone please direct me how to scan a QR code and get its content in Google Glass.

Thanks

回答1:

Instructions are using Android Development version of Eclipse.

Glass is running a version of Android 4.0.3. You can slideload an app using an .apk

This project, Barcode Eye, ports the ZXing project to Google Glass https://github.com/BarcodeEye/BarcodeEye

After you clone the repo, add GDK, and build you can port it to your device.

It has hooks for Amazon, Ebay and Google in it already



回答2:

Here is a good solution I found later on.

Here is how to start a basic glassware that starts the QR scanner, returns a result, and sets it as the view card.

Basic program, just the section

protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState);

 Intent intent = new Intent("com.google.zxing.client.android.SCAN");
 intent.setPackage("com.google.zxing.client.android");
 intent.putExtra("SCAN_MODE",ONE_D_MODE,QR_CODE_MODE,PRODUCT_MODE,DATA_MATRIX_MODE");
 startActivityForResult(intent, UPC_CODE_REQUEST);  

    Card card1 = new Card(this);
    card1.setText("Spoken Words!");
    card1.setFootnote("my app");
    View card1View = card1.toView();
    setContentView(card1View);
    setDisplayCard(card1);
}

//when a QR code is read, it will send a result code 
    protected void onActivityResult(int requestCode, int resultCode,
    Intent data) {
     if (requestCode == UPC_CODE_REQUEST && resultCode == RESULT_OK){
        String contents = data.getStringExtra("SCAN_RESULT");
        Card card1 = new Card(this);
        card1.setText(contents);
        card1.setFootnote("zxing");
        View card1View = card1.toView();
        setContentView(card1View);
        setDisplayCard(card1);

    }
    super.onActivityResult(requestCode, resultCode, data);
}


回答3:

Intent objIntent = new Intent("com.google.zxing.client.android.SCAN"); 
        objIntent.putExtra("SCAN_MODE", "QR_CODE_MODE"); 
        startActivityForResult(objIntent, 0);

Check if this will work for you, it is working on ADT (Mobile)



回答4:

package com.metaio.example_internal;

import android.os.Bundle;
import android.widget.TextView;

import com.metaio.sdk.ARViewActivity;
import com.metaio.sdk.MetaioDebug;
import com.metaio.sdk.jni.IGeometry;
import com.metaio.sdk.jni.IMetaioSDKCallback;
import com.metaio.sdk.jni.TrackingValues;
import com.metaio.sdk.jni.TrackingValuesVector;

public class QRCodeReader extends ARViewActivity
{
/**
 * Text view that will display bar code data
 */
private TextView mText;

@Override
public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    mText = new TextView(this);
    mGUIView = mText;
}

@Override
protected int getGUILayout() 
{
    return 0;
}

/**
 * Display a text on screen
 * @param data String to be displayed
 */
private void displayText(final String data)
{
    runOnUiThread(new Runnable()
    {
        @Override
        public void run() {

            mText.setText(data);
        }

    });
}

@Override
protected IMetaioSDKCallback getMetaioSDKCallbackHandler() 
{
    return new MetaioSDKCallbackHandler();
}

@Override
protected void loadContents() 
{   
    // set QR code reading configuration
    final boolean result = metaioSDK.setTrackingConfiguration("QRCODE");
    MetaioDebug.log("Tracking data loaded: " + result);
}

@Override
protected void onGeometryTouched(final IGeometry geometry) 
{

}

final class MetaioSDKCallbackHandler extends IMetaioSDKCallback
{       
    @Override
    public void onTrackingEvent(TrackingValuesVector trackingValues)
    {
        if (trackingValues.size() > 0)
        {
            final TrackingValues v = trackingValues.get(0);

            if (v.isTrackingState())
            {   
                final String[] tokens = v.getAdditionalValues().split("::");
                if (tokens.length > 1)
                {
                    displayText("QR Code detected: "+tokens[1]);
                }
            }
        }
    }

}
}


回答5:

Have recently launched a modified version of zxing library known as BarcodeFragLib, The library is compatible for any form factor and have tested it my self to work on Google Glass :) You can find the implementation sample and code is available at https://code.google.com/p/barcodefraglibv2/wiki/HowTo

Hope this helps :)



回答6:

which libraries have to be included to the own glass app if I want to run the scanner? What I did so far was to get this here: https://github.com/BarcodeEye/BarcodeEye The project works fine on glass :)

Greetings