使用XE22在Google Glass上进行眨眼检测

时间:2015-02-10 13:32:02

标签: android google-glass detection aero-glass

我正在尝试使用此库:

https://github.com/thorikawa/EyeGestureLib

但它不起作用..

当app启动时,在这行“onStart()”函数上发生NullPointerException:

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

我有其他代码,例如在github存储库中公开的appDemo,以及“onCreate”函数中的这一行:

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

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

1 个答案:

答案 0 :(得分:0)

您发布的图书馆已经过时了(11个月前的最后一次更改)。目前还没有正式的方法来检测眨眼。我有同样的问题,只检测眨眼和停止玻璃检测时拍照。有几种方法可以检测这种EyeGestures。这对我有用(引自this awesome source):

  

要收听Intent,您必须扩展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"));
        }
    }
}
  

您必须在Manifest中注册意图如下:

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

Manifest中指定的名称必须与侦听EyeGesture意图的类的名称相匹配。

     

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