main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <Button android:id="@+id/vibrate" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="振動" android:onClick="onClick" /> <Button android:id="@+id/timeout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="節奏" android:onClick="onClick" /> </LinearLayout>VibratorActivity
public class VibratorActivity extends Activity {
private static final String TAG = "VibratorActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onResume() {
super.onResume();
}
public void onClick(View v) {
Log.d(VibratorActivity.TAG, "onClick...");
Vibrator vibrator = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
if (v.getId() == R.id.vibrate) {
Log.d(VibratorActivity.TAG, "long vibration");
// 單次振動
vibrator.vibrate(5000);
}
else if (v.getId() == R.id.timeout) {
Log.d(VibratorActivity.TAG, "incremental vibration");
// 連續振動
vibrator.vibrate(new long[] {
1000, 100, 1000, 200, 1000, 300
}, -1);
}
}
}單次振動與連續振動都是以毫秒計算,連續振動使用一個 long 陣列來表示振動的節奏,陣列裡的 long 依序表示停、抖、停、抖...的時間長度,連續振動的第二個參數很奇怪,文件上說是用來設定重複,但整個就是很怪,這邊用 -1 表示不重複。最後還要在 AndroidManifest.xml 裡加上以下的權限才行。
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>當然要安裝到手機才會有振動的效果。

沒有留言:
張貼留言