●バイブレーションの制御


まずはマニフェストファイルを開いてバイブレーション制御の権限をアプリケーションに与えます

app\src\main\AndroidManifest.xml


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test.myapplication">
    <uses-permission android:name="android.permission.VIBRATE" />
    <application
        ............

赤文字の部分を追加します。


次にjavaプログラムからバイブレーションを呼び出してみましょう。


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        android.widget.RelativeLayout rl=(android.widget.RelativeLayout)findViewById(R.id.activity_main);
        rl.setOnTouchListener(new OnTouch_listener());
    }

    private class OnTouch_listener implements android.view.View.OnTouchListener
    {
        android.os.Vibrator vi=(android.os.Vibrator)getSystemService(VIBRATOR_SERVICE);
        @Override
        public boolean onTouch(android.view.View v, android.view.MotionEvent e){
            if(android.view.MotionEvent.ACTION_DOWN==e.getAction()) {
               vi.vibrate(50);
            }
            return true;
        }
    }
}



つまり必要なのはこの二行だけです。

android.os.Vibrator vi=(android.os.Vibrator)getSystemService(VIBRATOR_SERVICE);
vi.vibrate(50);

vibrate()の引数にはミリ秒の時間を指定しますが、
あんまり短い時間を指定すると無反応になります。
この二行だけで、とりあえずブルブル震わせることができます。
長い時間を設定して鳴っている時にvi.cancel();を呼び出すと止めることもできます。


▲トップページ > android