手機裝置震動是向使用者反饋資訊的一種很好的方法,特別是在遊戲應用中得到了極大的發揮。要控制裝置的震動,我們的應用程式需要獲得許可,即在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的專欄