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>當然要安裝到手機才會有振動的效果。
沒有留言:
張貼留言