2014-11-30 3 views
4

EyeGestureLib을 사용하여 Glass에서 Wink를 확인하려고합니다.Google Glass Eye Gesture 충돌 (EyeGestureLib)

나는 새 프로젝트를 만들었고 그 사람이 샘플 프로젝트 here과 정확히 똑같이 만들었습니다.

내 코드의 문제 부분은 다음과 같습니다 :

private EyeGestureManager mEyeGestureManager; 
private EyeGestureListener mEyeGestureListener; 

private EyeGesture target1 = EyeGesture.WINK; 
private EyeGesture target2 = EyeGesture.DOUBLE_BLINK; 

내부에서 onCreate, 나는이 :

mEyeGestureManager = EyeGestureManager.from(this); 
    mEyeGestureListener = new EyeGestureListener(); 

    // print out each eye gesture is supported or not 
    for (EyeGesture eg : EyeGesture.values()) { 
     boolean supported = mEyeGestureManager.isSupported(eg); 
     Log.d(TAG, eg.name() + ":" + supported); 
    } 

내 프로그램은 개봉 후 즉시 충돌합니다. 문제가 mEyeGestureManager에 액세스하려고 할 때 문제라는 것을 알고 있습니다. 내가 관찰 무엇을 프로그램 crash.According를 만들 것입니다 mEyeGestureManager를 사용하는 코드의 모든 곳은 mEyeGestureManager 내가

mEyeGestureManager = new EyeGestureManager(); 

mEyeGestureManager = EyeGestureManager.from(this);

을 변경하는 경우에도 mEyeGestureManager = EyeGestureManager.from(this);

후 null의 경우 충돌을 멈추고 mEyeGestureManager는 더 이상 null이 아니지만 이 윙크 또는 이중 윙크를 감지하지 않습니다.

내 유리가 XE21을 실행 중이지만 내 연구에 따르면 EyeGestureLib이 Glass 버전> XE18.3에서 제대로 작동하지 않기 때문에 XE18.3으로 다운 그레이드했습니다.

https://github.com/thorikawa/EyeGestureLib/issues/2

EyeGestures NOT working in 19.1

는 지금은 XE18.3을 가지고 있지만 그것은 작동하지 않습니다. 내가 가지고있을 때 윙크가 작동하지 않습니다 mEyeGestureManager = new EyeGestureManager(); 와 나는 얻을 :

Supported:﹕ BLINK:false 
Supported:﹕ DOFF:false 
Supported:﹕ DON:false 
Supported:﹕ DOUBLE_BLINK:false 
Supported:﹕ DOUBLE_WINK:false 
Supported:﹕ LOOK_AT_SCREEN:false 
Supported:﹕ LOOK_AWAY_FROM_SCREEN:false 
Supported:﹕ WINK:false 

을하지만이있을 때 :

mEyeGestureManager = EyeGestureManager.from(this); 

그것은 바로 충돌합니다.

나는 already compiled example "EyeGestureDemo-debug-1.1.apk"을 설치했고 WORKED을 잘 설치했지만 내 것은 설치하지 않았다.

내가 뭘 잘못하고 있니? 나는 3 일 동안 이것을하려고 노력하고있다. 구글은 이것에 대한 공식적인 API를 가지고 있지 않지만, 그들이 출시 될 때까지 기다리고 싶지 않다. 최대한 빨리 내 학교 프로젝트에 필요합니다. 누구나 문제에 대한 아이디어가 있습니까?

편집 : 충돌 로그

12-02 09:39:54.347 3758-3758/com.inno.inno.glassplugin D/AndroidRuntime﹕ Shutting down VM 
12-02 09:39:54.347 3758-3758/com.inno.inno.glassplugin W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41f78bd8) 
12-02 09:39:54.363 3758-3758/com.inno.inno.glassplugin E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: com.inno.inno.glassplugin, PID: 3758 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.inno.inno.glassplugin/com.inno.inno.glassplugin.MainActivity}: java.lang.NullPointerException 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2235) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2285) 
      at android.app.ActivityThread.access$800(ActivityThread.java:138) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236) 
      at android.os.Handler.dispatchMessage(Handler.java:102) 
      at android.os.Looper.loop(Looper.java:149) 
      at android.app.ActivityThread.main(ActivityThread.java:5061) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:515) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.NullPointerException 
      at com.inno.inno.glassplugin.MainActivity.onCreate(MainActivity.java:92) 
      at android.app.Activity.performCreate(Activity.java:5236) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1089) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2285) 
            at android.app.ActivityThread.access$800(ActivityThread.java:138) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1236) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:149) 
            at android.app.ActivityThread.main(ActivityThread.java:5061) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:515) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602) 
            at dalvik.system.NativeStart.main(Native Method) 
+0

오류 메시지? 로그를 공유 할 수 있습니까? lib가 오래된 XE에서 잘 작동했음을 기억합니다. – pt2121

+0

방금 ​​충돌 로그를 첨부했습니다. 감사합니다. – Programmer

답변

2

이 API는 (XE (20)의 주위에 내 생각) 오래 전에 변경되었습니다.

나는 EyeGestureManager의 작동을 파악하기 위해 리바운드 (reflection)로 파고 들어야했다.

여기 내 업데이트 된 버전이 몇 가지 예제 코드를 보여 사용과 함께,이다 : https://gist.github.com/victorkp/9094a6aea9db236a97f3

+0

mEyeGestureListener는 어디에 그리고 어떻게 정의되어 있습니까? 당신은 완전한 모범을 보여줄 수 있습니까? 자바? 감사. – Programmer

+0

mEyeGestureManager = EyeGestureManager.from (mContext) ;, mContext를 "this"로 바꿀 수 있습니까? 어디에서 mContext를 정의했는지, 어떻게 초기화되었는지는 모르겠다. – Programmer

+0

Whoops가 그것을 잊어 버렸습니다. 예, mContext는 컨텍스트 일 ​​뿐이므로 'this'로 바꿀 수 있습니다 (Activity 또는 Service에서이 코드를 호출한다고 가정). –