訪問Android硬件資源の控制設備的振動

手機設備振動是向用戶反饋信息的一種很好的方法,特別是在遊戲應用中得到瞭極大的發揮。要控制設備的振動,我們的應用程序需要獲得許可,即在AndroidManifest.xml文件中添加如下代碼:
[html]
<uses-permission android:name="android.permission.VIBRATE"/> 
設備振動是通過Vibrator類來實現的,獲取這個類實例的代碼如下:
[java]
String vibratorService = Context.VIBRATOR_SERVICE; 
Vibrator vibrator = (Vibrator) getSystemService(vibratorService); 
調用vibrate函數開始振動,這個函數有兩個重載函數,分別是:
[java]
void vibrate(long[] pattern, int repeat); 
void vibrate(long milliseconds); 
前者以某一指定的模式和重復次數作為參數,後者以振動的毫秒數作為參數。
調用cancel函數可以取消振動,要註意,退出振動程序後,如果不手動調用cancel函數取消振動的話,該振動將會持續下去(如果是持續振動的話),而不管應用程序是否退出。
下面簡單的程序實現的功能是在程序啟動後1秒,振動2秒,停止振動4秒,接著振動8秒,停止振動16秒,周而復始。
[java]
package hust.iprai.asce1885; 
 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.os.Vibrator; 
 
public class DeviceVibrationActivity extends Activity { 
     
    private Vibrator vibrator = null; 
     
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
         
        String vibratorService = Context.VIBRATOR_SERVICE; 
        vibrator = (Vibrator) getSystemService(vibratorService); 
         
        long[] pattern = {1000, 2000, 4000, 8000, 16000}; 
        vibrator.vibrate(pattern, 0); 
         
    } 
 
    @Override 
    protected void onDestroy() { 
        super.onDestroy(); 
        vibrator.cancel(); 
    } 

摘自 ASCE1885的專欄

發佈留言