Skip to content

Instantly share code, notes, and snippets.

@nieldeokar
Last active September 1, 2023 11:04
Show Gist options
  • Save nieldeokar/e05fffe4d639dfabf0d57e96cb8055e2 to your computer and use it in GitHub Desktop.
Save nieldeokar/e05fffe4d639dfabf0d57e96cb8055e2 to your computer and use it in GitHub Desktop.

Revisions

  1. nieldeokar revised this gist Mar 6, 2019. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -7,8 +7,9 @@
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;


    /*
    ~ Nilesh Deokar @nieldeokar on 03/06/18 11:22 PM
    */

    /*
    * To test this :
  2. nieldeokar revised this gist Apr 28, 2018. 2 changed files with 12 additions and 4 deletions.
    10 changes: 6 additions & 4 deletions SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -8,10 +8,12 @@
    import android.os.Bundle;
    import android.widget.Toast;



    /*
    * To test this :
    * 1. Paste this activity inside your project.
    * 2. Create any blank xml with name `activity_simple_vibrate_demo.xml` Doesn't require any views.
    * 2. Paste `activity_simple_vibrate_demo.xml` into resources folder.
    * 3. Add entry of SimpleVibrateDemoActivity inside AndroidManifest.xml
    * 4. Add Vibrate permission inside AndroidManifest.xml
    *
    @@ -32,7 +34,7 @@ protected void onCreate(Bundle savedInstanceState) {

    vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

    if (vibrator.hasVibrator()) {
    if (vibrator != null && vibrator.hasVibrator()) {

    vibrateFor500ms();

    @@ -46,7 +48,7 @@ protected void onCreate(Bundle savedInstanceState) {
    createWaveFormVibrationUsingVibrationEffectAndAmplitude();
    }

    }else {
    } else {
    Toast.makeText(this, "Device does not support vibration", Toast.LENGTH_SHORT).show();
    }
    }
    @@ -99,7 +101,7 @@ private void createWaveFormVibrationUsingVibrationEffectAndAmplitude() {
    long[] mVibratePattern = new long[]{0, 400, 800, 600, 800, 800, 800, 1000};
    int[] mAmplitudes = new int[]{0, 255, 0, 255, 0, 255, 0, 255};
    // -1 : Play exactly once

    if (vibrator.hasAmplitudeControl()) {
    VibrationEffect effect = VibrationEffect.createWaveform(mVibratePattern, mAmplitudes, -1);
    vibrator.vibrate(effect);
    6 changes: 6 additions & 0 deletions activity_simple_vibrate_demo.xml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,6 @@
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    </RelativeLayout>
  3. nieldeokar revised this gist Apr 11, 2018. 1 changed file with 12 additions and 0 deletions.
    12 changes: 12 additions & 0 deletions SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -8,6 +8,18 @@
    import android.os.Bundle;
    import android.widget.Toast;

    /*
    * To test this :
    * 1. Paste this activity inside your project.
    * 2. Create any blank xml with name `activity_simple_vibrate_demo.xml` Doesn't require any views.
    * 3. Add entry of SimpleVibrateDemoActivity inside AndroidManifest.xml
    * 4. Add Vibrate permission inside AndroidManifest.xml
    *
    * <uses-permission android:name="android.permission.VIBRATE" />
    *
    * 5. Build & run.
    * */


    public class SimpleVibrateDemoActivity extends AppCompatActivity {

  4. nieldeokar revised this gist Nov 13, 2017. 1 changed file with 10 additions and 10 deletions.
    20 changes: 10 additions & 10 deletions SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -11,16 +11,16 @@

    public class SimpleVibrateDemoActivity extends AppCompatActivity {

    Vibrator v;
    Vibrator vibrator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_simple_vibrate_demo);

    v = (Vibrator) getSystemService(VIBRATOR_SERVICE);
    vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

    if (v.hasVibrator()) {
    if (vibrator.hasVibrator()) {

    vibrateFor500ms();

    @@ -41,7 +41,7 @@ protected void onCreate(Bundle savedInstanceState) {


    private void vibrateFor500ms() {
    v.vibrate(500);
    vibrator.vibrate(500);
    }

    private void customVibratePatternNoRepeat() {
    @@ -54,31 +54,31 @@ private void customVibratePatternNoRepeat() {

    // -1 : Do not repeat this pattern
    // pass 0 if you want to repeat this pattern from 0th index
    v.vibrate(mVibratePattern, -1);
    vibrator.vibrate(mVibratePattern, -1);

    }

    private void customVibratePatternRepeatFromSpecificIndex() {
    long[] mVibratePattern = new long[]{0, 400, 800, 600, 800, 800, 800, 1000};

    // 3 : Repeat this pattern from 3rd element of an array
    v.vibrate(mVibratePattern, 3);
    vibrator.vibrate(mVibratePattern, 3);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createOneShotVibrationUsingVibrationEffect() {
    // 1000 : Vibrate for 1 sec
    // VibrationEffect.DEFAULT_AMPLITUDE - would perform vibration at full strength
    VibrationEffect effect = VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE);
    v.vibrate(effect);
    vibrator.vibrate(effect);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createWaveFormVibrationUsingVibrationEffect() {
    long[] mVibratePattern = new long[]{0, 400, 1000, 600, 1000, 800, 1000, 1000};
    // -1 : Play exactly once
    VibrationEffect effect = VibrationEffect.createWaveform(mVibratePattern, -1);
    v.vibrate(effect);
    vibrator.vibrate(effect);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    @@ -88,9 +88,9 @@ private void createWaveFormVibrationUsingVibrationEffectAndAmplitude() {
    int[] mAmplitudes = new int[]{0, 255, 0, 255, 0, 255, 0, 255};
    // -1 : Play exactly once

    if (v.hasAmplitudeControl()) {
    if (vibrator.hasAmplitudeControl()) {
    VibrationEffect effect = VibrationEffect.createWaveform(mVibratePattern, mAmplitudes, -1);
    v.vibrate(effect);
    vibrator.vibrate(effect);
    }
    }

  5. nieldeokar revised this gist Nov 8, 2017. No changes.
  6. nieldeokar revised this gist Nov 8, 2017. 1 changed file with 2 additions and 1 deletion.
    3 changes: 2 additions & 1 deletion SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -6,6 +6,7 @@
    import android.support.annotation.RequiresApi;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.widget.Toast;


    public class SimpleVibrateDemoActivity extends AppCompatActivity {
    @@ -84,7 +85,7 @@ private void createWaveFormVibrationUsingVibrationEffect() {
    private void createWaveFormVibrationUsingVibrationEffectAndAmplitude() {

    long[] mVibratePattern = new long[]{0, 400, 800, 600, 800, 800, 800, 1000};
    int[] mAmplitudes = new int[]{0, 255, 0, 255, 0, 255, 0, 255}
    int[] mAmplitudes = new int[]{0, 255, 0, 255, 0, 255, 0, 255};
    // -1 : Play exactly once

    if (v.hasAmplitudeControl()) {
  7. nieldeokar created this gist Nov 8, 2017.
    96 changes: 96 additions & 0 deletions SimpleVibrateDemoActivity.java
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,96 @@
    package com.example.nileshdeokar.simplevibratedemo;

    import android.os.Build;
    import android.os.VibrationEffect;
    import android.os.Vibrator;
    import android.support.annotation.RequiresApi;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;


    public class SimpleVibrateDemoActivity extends AppCompatActivity {

    Vibrator v;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_simple_vibrate_demo);

    v = (Vibrator) getSystemService(VIBRATOR_SERVICE);

    if (v.hasVibrator()) {

    vibrateFor500ms();

    customVibratePatternNoRepeat();

    customVibratePatternRepeatFromSpecificIndex();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    createOneShotVibrationUsingVibrationEffect();
    createWaveFormVibrationUsingVibrationEffect();
    createWaveFormVibrationUsingVibrationEffectAndAmplitude();
    }

    }else {
    Toast.makeText(this, "Device does not support vibration", Toast.LENGTH_SHORT).show();
    }
    }


    private void vibrateFor500ms() {
    v.vibrate(500);
    }

    private void customVibratePatternNoRepeat() {

    // 0 : Start without a delay
    // 400 : Vibrate for 400 milliseconds
    // 200 : Pause for 200 milliseconds
    // 400 : Vibrate for 400 milliseconds
    long[] mVibratePattern = new long[]{0, 400, 200, 400};

    // -1 : Do not repeat this pattern
    // pass 0 if you want to repeat this pattern from 0th index
    v.vibrate(mVibratePattern, -1);

    }

    private void customVibratePatternRepeatFromSpecificIndex() {
    long[] mVibratePattern = new long[]{0, 400, 800, 600, 800, 800, 800, 1000};

    // 3 : Repeat this pattern from 3rd element of an array
    v.vibrate(mVibratePattern, 3);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createOneShotVibrationUsingVibrationEffect() {
    // 1000 : Vibrate for 1 sec
    // VibrationEffect.DEFAULT_AMPLITUDE - would perform vibration at full strength
    VibrationEffect effect = VibrationEffect.createOneShot(1000, VibrationEffect.DEFAULT_AMPLITUDE);
    v.vibrate(effect);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createWaveFormVibrationUsingVibrationEffect() {
    long[] mVibratePattern = new long[]{0, 400, 1000, 600, 1000, 800, 1000, 1000};
    // -1 : Play exactly once
    VibrationEffect effect = VibrationEffect.createWaveform(mVibratePattern, -1);
    v.vibrate(effect);
    }

    @RequiresApi(api = Build.VERSION_CODES.O)
    private void createWaveFormVibrationUsingVibrationEffectAndAmplitude() {

    long[] mVibratePattern = new long[]{0, 400, 800, 600, 800, 800, 800, 1000};
    int[] mAmplitudes = new int[]{0, 255, 0, 255, 0, 255, 0, 255}
    // -1 : Play exactly once

    if (v.hasAmplitudeControl()) {
    VibrationEffect effect = VibrationEffect.createWaveform(mVibratePattern, mAmplitudes, -1);
    v.vibrate(effect);
    }
    }

    }