Como utilizar el vibrador en un celular con android studio

Hola a todos hoy veremos un tutorial nuevo, como manipular el vibrador del celular, traigo un ejemplo básico pero muy ilustrativo.

Debemos tener en cuenta a la clase Vibrator para proceder con nuestro ejercicio, si deseas leer algo mas al respecto te dejo un enlace aquí. Al final del articulo podrán descargar el código fuente y recuerden que estoy trabajando en un versión vieja de Android, por experiencia podría decir que funcionaria en cualquier versión pero debemos tener en cuenta esto.

 

 

 

PASO 1: Debemos ir a nuestro AndroidManifest.xml y agregar un permiso.

<uses-permission android:name="android.permission.VIBRATE"/>

 

PASO 2: Debemos crear 3 botones en nuestro activity_main.xml, uno sera para uno sera para que la vibración sea constante el segundo botón para que sea uno sola vibración y el ultimo nos servirá para parar la vibración y debe quedar como la siguiente imagen:

crear un vibrador en android studio

AndroidManifest

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.androidmorefast.pc.appvibrador01.MainActivity">


    <Button
        android:text="Opcion 2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_brivate_once"
        android:onClick="performVibrateOnce"
        android:layout_alignTop="@+id/btn_brivate_repeat"
        android:layout_alignLeft="@+id/btn_brivate_repeat"
        android:layout_alignStart="@+id/btn_brivate_repeat"
        android:layout_marginTop="64dp" />

    <Button
        android:text="Stop"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_brivate_cancel"
        android:onClick="performVibrateCancel"
        android:layout_below="@+id/btn_brivate_once"
        android:layout_alignLeft="@+id/btn_brivate_once"
        android:layout_alignStart="@+id/btn_brivate_once"
        android:layout_marginTop="24dp" />

    <Button
        android:text="Opcion 1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_brivate_repeat"
        android:onClick="performVibrateRepeat"
        android:layout_marginTop="35dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
    />
</RelativeLayout>

 

PASO 3: Bueno ahora solo queda echarle mano al código, en nuestro código vamos a inicializar los tres botones y luego haremos uso de la clase vibration y en cada uno de los botones se indicara la forma y el tiempo de vibración:

MainActivity

public class MainActivity extends AppCompatActivity {
    private Button btnOpc1;
    private Button btnOpc2;
    private Button btnCancel;
    private boolean isVibrating = false;
    private Vibrator vibrador;


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

        btnOpc1 = (Button) findViewById(R.id.btn_brivate_once);
        btnOpc2 = (Button) findViewById(R.id.btn_brivate_repeat);
        btnCancel = (Button) findViewById(R.id.btn_brivate_cancel);
        vibrador = ((Vibrator) getSystemService(VIBRATOR_SERVICE));
        vibrador.cancel();
    }

    public void performVibrateOnce(View view) {
        if (!vibrador.hasVibrator()) {
            Toast.makeText(MainActivity.this,
                    "No soporta Vibrador", Toast.LENGTH_LONG).show();
            return;
        }
        if (isVibrating)
            vibrador.cancel();
        vibrador.vibrate(1000L);
        isVibrating = true;
        btnCancel.setEnabled(true);
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                isVibrating = false;
                btnCancel.setEnabled(false);
            }
        }, 1000);
    }

    public void performVibrateRepeat(View view) {
        if (!vibrador.hasVibrator()) {
            Toast.makeText(MainActivity.this,
                    "No esta activado", Toast.LENGTH_LONG).show();
            return;
        }
        if (isVibrating)
            vibrador.cancel();

        long delay = 250;
        long keeVip = 250;
        long on_off = 250;
        int repeat = 1;

        vibrador.vibrate(new long[]{delay, keeVip, on_off, on_off, on_off}, repeat);
        isVibrating = true;
        btnCancel.setEnabled(true);
    }

    public void performVibrateCancel(View view) {
        if (!vibrador.hasVibrator()) {
            Toast.makeText(MainActivity.this,
                    "No hay Vibrador", Toast.LENGTH_LONG).show();
            return;
        }
        if (isVibrating) {
            vibrador.cancel();
            btnCancel.setEnabled(false);
            isVibrating = false;
        }

    }

}
Bueno con eso hemos terminado, espero les haya gustado y les sirva para algún proyecto que tengan a futuro.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

WhatsApp chat