2012年07月12日

バイブレーションを使う(1)


デバイスのバイブレーションを使う方法は2通りあります
Vibratorクラスを使用
NotificationManagerクラスを使用

今回は1つ目のほうを使ってみたいと思います

Vibratorクラスを使う
Vibratorクラスでのバイブレーションのパターンには
指定時間ONする
パターンを繰り返す
の2通りがあります

指定時間ONする場合にはvibrate(long milliseconds)を使います

パターンを使って繰り返す場合には
vibrate(long[] pattern, int repeat)を使います
longでONの時間とOFFの時間を交互に指定します
int repeatでは繰り返し回数ではなく
patternのどこから開始するかを表すパラメータです
パターンの最初から繰り返しをする場合は"0"を設定します
また繰り返しを行わない場合は"-1"を設定します

バイブレーションを止める場合にはcancelメソッドを使います

以下はそれぞれを試すサンプルプログラムです


まずはレイアウトに3つのボタンを配置します
・指定時間ON
・パターンを繰り返す
・ストップ

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent"
	android:layout_height="fill_parent"
	android:orientation="vertical" >


    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="指定時間ON"/>



    <Button
        android:id="@+id/button2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="パターンを繰り返す"/>




    <Button
        android:id="@+id/button3"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="ストップ" />

</LinearLayout>


次にMainActivityです
こちらはそれぞれボタンの動作を設定しています

MainActivity.java
package blog.test;

import android.app.Activity;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity implements View.OnClickListener{
	private Button btn1, btn2, btn3;
	private Vibrator vib;
	private long pattern[] = {1000, 300, 500, 300, 200, 300 };
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		btn1 = (Button)findViewById(R.id.button1);
		btn1.setOnClickListener(this);
		btn2 = (Button)findViewById(R.id.button2);
		btn2.setOnClickListener(this);
		btn3 = (Button)findViewById(R.id.button3);
		btn3.setOnClickListener(this);
		//VIBRATORのインスタンス取得
		vib = (Vibrator)getSystemService(VIBRATOR_SERVICE);
	}
	
	public void onClick(View v) {
		if(v == btn1) {
			vib.vibrate(5000);// 指定時間ONする
		}
		else if(v == btn2) {
			vib.vibrate(pattern, 0);// パターンを繰り返す
		}
		else if(v == btn3) {
			vib.cancel();// ストップ
		}
	}
}


最後にハードウェアのバイブレーションを使う権限を追加しなければなりません
AndroidManifest.xmlを開いて次の一文を追記します
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>



今回もgalaxy sの実機で確認しました

device130.png
ちゃんと震えていますw

スポンサードリンク

【ハードウェア バイブレーションの最新記事】
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/280497858
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。