Android HapticFeedback觸感反饋

使用方法(默認觸感反饋是啓用的)

  • view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);

  • 第二個參數不傳HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING全部失效

初步測試結果

  1. 第一個參數傳除HapticFeedbackConstants.VIRTUAL_KEY以外的任何參數,不是震動比它小就是沒有震動。
  2. 第二個參數傳HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING)(即忽略全局設置)以外的參數或者不傳,也沒有震動。

替代方法

實際上 HapticFeedback 也是調用的Vibrate震動引擎,只是Android系統內定義好了幾種比較好的震動效果,而且HapticFeedback不需要震動權限
如果有權限:
<uses-permission android:name="android.permission.VIBRATE"/>

//取得震動服務
       Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
        if (vibrator != null) {
            vibrator.vibrate(new long[]{0,10},-1);
        }

實測 Smartisan R1 在震動時間爲10ms的情況下已經有較重的劃欄杆的感覺了。

vibrate()裏面是個long數組加一個重複模式,大概意思是(參考文章):

開始震動有兩個接口

  1 .   vibrator.vibrate(2000);//震動指定時間 ,數據類型long,單位爲毫秒,一毫秒爲1/1000秒

  2.    vibrator.vibrate(new long[]{100,10,100,1000}, -1);//按照指定的模式去震動。

數組參數意義:第一個參數爲等待指定時間後開始震動,震動時間爲第二個參數。後邊的參數依次爲等待震動和震動的時間

第二個參數爲重複次數,-1爲不重複,0爲一直震動    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章