2012-04-25 82 views
1

我正在開發一款應用程序,旨在捕獲畫布上的文字。該應用程序設計用於HTC Flyer(Android 2.3.3)。Android HTC Flyer - 通過MotionEvents捕獲手寫筆

此設備已安裝Scribbler,因此我禁用了「自動啓動Scribbler模式」,但保留了「每個應用的筆歷史」選中狀態。

在我的測試中,我發現該應用程序可以在觸摸屏上檢測我的手指,但不能檢測到手寫筆。我按下了手寫筆上的按鈕組合無濟於事。

我已經從Android開發者基於TouchPaint代碼:http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/TouchPaint.html

在上面的代碼

com.example.android.apis.graphics; 

在我的Eclipse IDE中描述的沒導入包,它報告了以下的問題提示我應該刪除Override屬性。

@Override 
public boolean onHoverEvent(MotionEvent event) { 
    return onTouchOrHoverEvent(event, false /*isTouch*/); 
} 

所以我做了。

我已將以下內容添加到清單中。

<uses-configuration android:reqTouchScreen="stylus"/> 
<uses-configuration android:reqTouchScreen="finger"/> 

該應用程序可以檢測到我的手指在觸摸屏上的移動,但從來沒有我的手寫筆。爲什麼?

我還注意到,在Android開發人員指南中,MotionEvents引用了getToolType,但我無法在Eclipse的「智能感知」中看到它。

http://developer.android.com/reference/android/view/MotionEvent.html#getToolType%28int%29

方法getToolType是不是在我的Android代碼可用。我想我可以使用這種方法來檢查觸摸輸入的類型,例如手指或手寫筆。

我還爲PaintView添加了一個onTouchListener(基於TouchPaint代碼)。

this.setOnTouchListener(new View.OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
     return touchSurface(v, event); 
    } 
}); 

觸摸表面代碼

private boolean touchSurface(View v, MotionEvent event) { 
      boolean complete = true; 
      int pAction = event.getAction(); 
      int pActionIndex = event.getActionIndex(); 

      Log.i("SignName", "touchSurface event fired."); 
      Log.i("SignName", "Pointer Action: " + pAction + ", pActionIndex: " + pActionIndex); 

      return complete; 
     } 

當我用我的手指,上面的事件。當我使用手寫筆時,它不會被解僱。爲什麼?

我不知道這個問題是否與HTC Flyer隔​​離,這是因爲它有一個Scribbler應用程序,它覆蓋了我的應用程序設置或者我的代碼是錯誤的。

你能幫我嗎?

(更新:2012年4月27日) 我發現問題所在。這是造成混亂的專用手寫筆HTC Flyer。

我想如果這個手寫筆沒有工作,那麼其他手寫筆也不會工作。但是,我確實嘗試了一種不同的手寫筆,它的工作原理。

感謝您的幫助,但。

+0

構建和檢查一些HTC使用筆的例子。 – 2012-04-27 03:35:48

回答

1

首先,您應該將您的Flyer更新爲Honeycomb(Android 3。2),這個例子也是特定於ICS(Android 4)的,但是你可以通過使用兼容庫運行這個例子並且對代碼做一些小的修改,更多的信息可以在http://htcdev.com

+0

感謝您的幫助。我發現問題是什麼。這是Flyer附帶的專用Stylus。 – jova85 2012-04-27 10:33:06