2015-02-10 79 views
0

我想使用这个库:眨眼检测与XE22

https://github.com/thorikawa/EyeGestureLib

,但它不是工程..

当应用程序启动时,会出现一个NullPointerException这条线“在onStart()”函数:

mEyeGestureManager.register(target1, mEyeGestureListener); 
mEyeGestureManager.register(target2, mEyeGestureListener); 

我有其他类似的代码在GitHub的仓库露出appDemo这行‘的onCreate’功能:

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

有什么建议吗?有更新库吗?

回答

0

您发布的图书馆相当过时(11个月前的最后更改)。目前没有官方的方法来检测眨眼。我遇到同样的问题,只能检测到眨眼,并在检测到玻璃时才停止拍照。有几种方法可以检测到这种EyeGestures。这里是我为什么工作(引自this awesome source):

要收听意图,你必须扩展BroadcastReceiver。

public class EyeGesture extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     if (intent.getStringExtra("gesture").equals("WINK")) { 
      //Disable Camera Snapshot 
      abortBroadcast(); 
      Log.e("WINKED ",""); 
     } else { 
      Log.e("SOMETHING", "is detected " + intent.getStringExtra("gesture")); 
     } 
    } 
} 

你必须先注册为下文清单的意图:

<receiver android:name="com.inno.inno.glassplugin.EyeGesture"> 
    <intent-filter> 
     <action android:name="com.google.android.glass.action.EYE_GESTURE" /> 
    </intent-filter> 
</receiver> 

在清单中指定的名称必须到意图类听力的名称相匹配这是EyeGesture。

那样简单。不需要库,但只能检测到WINK。当检测到眨眼时,它也会阻止Glass拍照。你可以评论abortBroadcast();如果您希望Glass在检测到事件时拍照。