我正在尝试使用此库:
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();
有什么建议吗?有更新库吗?
答案 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在检测到事件时拍照。