概ねタイトル通りです。
Vibratorクラスを使ってバイブレーション機能を使ってみます。
振動する時間や繰り返しのパターンなどを設定できるみたいですね。
AndroidManifestに権限を追加する
加速度センサやSDカードを使う場合と同じように、振動機能を使う場合でも
AndroidManifest.xmlを修正する必要があります。
以下のように一行追加しましょう。
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
<application
android:icon="@drawable/ic_launcher"
getSystemServiceを使いVibratorクラスのインスタンス取得
Vibratorクラスを使うには android.os.Vibrator をインポートします。
getSystemService関数を使ってインスタンスを取得します。
import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
public class Sample20120630Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Vibrator vib = (Vibrator)getSystemService(VIBRATOR_SERVICE);
}
}
Vibratorクラスのvibrate関数でバイブレーションをさせる
バイブレーションをさせるって言葉はなんかおかしい感じがしますが、
振動させるにはVibratorクラスの vibrate関数 を使います。
逆にバイブレーションを止める場合はcancel関数を使います。
・Vibratorクラスの関数
| 関数名 | 機能 |
| vibrate() | 引数のミリ秒間振動する |
|---|---|
| cancel() | 振動を止める |
vibrate関数はlong型の配列を指定すると、
振動する時間と止まる時間を組み合わせた振動パターンで設定できます。
サンプルで使用しているので参考にしてみて下さい。
サンプルプログラム
4秒間バイブレーションするボタン、
0.2秒振動、0.2秒停止、0.5秒振動のパターンでバイブレーションするボタン
バイブレーションを止めるボタンが付けてみたサンプルです。
import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.*;
import android.view.View.OnClickListener;
import android.widget.*;
public class Sample20120630Activity extends Activity {
Vibrator vib;
Button btn,btn2,btn3;
private long pattern[] = {200, 200, 500 };
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
setContentView(ll);
btn = new Button(this);
btn.setText("振動はじめ");
btn2 = new Button(this);
btn2.setText("パターン振動");
btn3 = new Button(this);
btn3.setText("振動おわり");
ll.addView(btn);
ll.addView(btn2);
ll.addView(btn3);
btn.setOnClickListener( new SampleClick() );
btn2.setOnClickListener( new SampleClick() );
btn3.setOnClickListener( new SampleClick() );
vib = (Vibrator)getSystemService(VIBRATOR_SERVICE);
}
class SampleClick implements OnClickListener{
public void onClick( View v ){
if( v == btn ){
vib.vibrate(4000);//
}else if( v == btn2 ){
vib.vibrate( pattern, 0);
}else if( v == btn3 ){
vib.cancel();
}
}
}
}
【実行画面】
