2015-02-10 60 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在檢測到事件時拍照。