2014-01-09 108 views
7

我想创建一个Google Glass应用程序,我在其中扫描QR码。如何使用Google Glass扫描QR码?

我经历了这个帖子,但我不明白的主意。

Read QR code

任何人都可以请直接我如何扫描QR码,并获得其在谷歌眼镜的内容。

谢谢

+0

可能重复:// stackoverflow.com/questions/20831835/how-can-i-read-qr-code-inside-gdk-app) –

回答

4

说明使用的是Android开发版的Eclipse。

Glass正在运行Android 4.0.3的一个版本。使用的apk

这个项目,条码眼,港口斑马线项目,谷歌眼镜https://github.com/BarcodeEye/BarcodeEye

后您克隆回购可以slideload一个应用程序,添加GDK和端口它建立你可以到你的设备。

它有亚马逊,eBay和谷歌的钩子,它已经

+0

如何从我自己的应用程序中将BarcodeEye用作意图? – calumb

+0

我仍在研究这个问题,但看看当前应用程序处理其他请求的结构。 这是外部意图的领先者。 http://stackoverflow.com/questions/1977243/launching-external-application-from-my-app – stanzheng

+0

嗯,以及我能够从我的应用程序启动BarcodeEye没有问题。但标准意图返回操作必须已被删除。我遇到了麻烦,在正确的位置调用了setResult,并将控制权交还给我的应用程序。目前BarcodeEye无论我做什么都会继续运行。 – calumb

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

检查这是否会为你工作,这是工作在ADT(移动)

3

这里是一个很好的解决方案,我发现稍后的。

这里是如何启动一个基本的玻璃器皿,启动QR扫描仪,返回结果,并将其设置为视图卡。

基本程序,只是部分

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); 
} 
+1

但是你必须在Glass之前安装Zxing。没有它只会要求你这样做。 –

+0

您是如何在没有安装zxing的情况下管理的? –

2
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]); 
       } 
      } 
     } 
    } 

} 
} 
+0

并且还使用metaio sdk库 – Nehalkumar

0

如果我想运行扫描仪,哪些库必须包含到自己的玻璃应用程序中? 我做了什么至今在这儿会得到这样的:https://github.com/BarcodeEye/BarcodeEye 项目工作正常,在玻璃上:)

问候

的[我怎么能读GDK应用程序内QR码?](HTTP