Como se analiza en Cómo hacer vibrar un dispositivo mediante programación en Android anteriormente en el artículo. Entonces, en este artículo, se ha discutido cómo hacer patrones de vibración, lo que produce las vibraciones de diferentes formas de onda. Esta implementación puede ser una réplica de la vibración que se produce cuando hay una llamada entrante y el dispositivo hace varios patrones de vibraciones.
Pasos para implementar Patrones de Vibración en Android
Paso 1: Cree un proyecto de estudio de Android de actividad vacía
- Cree un proyecto de estudio de Android de actividad vacío. Y seleccione Java como lenguaje de programación.
- Consulte Android | Cómo crear/iniciar un nuevo proyecto en Android Studio para saber cómo crear un proyecto de Android Studio de actividad vacía.
Paso 2: trabajar con el archivo activity_main.xml
- Implemente un solo botón en el diseño que se utiliza para crear formas de onda de vibración, cuando se presiona.
- Invoque el siguiente código en el archivo activity_main.xml .
XML
<?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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" tools:ignore="HardcodedText"> <!--button to compose vibration waveforms when pressed--> <Button android:id="@+id/makeVibrationCompositionButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:backgroundTint="@color/colorPrimary" android:text="COMPOSE VIBRATION" android:textColor="@android:color/white" /> </RelativeLayout>
Interfaz de usuario de salida:
Paso 3: Buscando vibrar permisos
- Buscando el permiso de vibración en el archivo AndroidManifest.xml, porque estamos accediendo a la parte de hardware del dispositivo.
- Invoque el siguiente código dentro del archivo AndroidManifest.xml
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.adityamshidlyali.composevibrationinandroid"> <!--vibrate permission which needs to be invoked as we hard accessing the vibrator hardware of the device--> <uses-permission android:name="android.permission.VIBRATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Paso 4: trabajar con el archivo MainActivity.java
- En el artículo anterior, se ha discutido la vibración predefinida para el dispositivo Android. Pero aquí se crean formas de onda personalizadas utilizando una array variable larga.
- Uno de los puntos importantes a tener en cuenta aquí es que, al crear las formas de onda en una array de tipos de tipo largo, el primer elemento debe ser cero (0). Esto se debe a que, en primera instancia, es necesario encender el vibrador del dispositivo y luego hacerlo vibrar para las formas de onda adicionales.
- En este caso, la forma de onda es larga[] vibraciónWaveFormDurationPattern = {0, 10, 200, 500, 700, 1000, 300, 200, 50, 10}; del código de abajo. Y la primera forma de onda es 0.
- Invoque el siguiente código en el archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import androidx.appcompat.app.AppCompatActivity; import android.content.Context; import android.os.Bundle; import android.os.VibrationEffect; import android.os.Vibrator; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { Button bComposeVibration; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // register the button with the appropriate ID bComposeVibration = findViewById(R.id.makeVibrationCompositionButton); // create instance of the vibrator and initialise it with Vibrator system service final Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // handle compose vibration button bComposeVibration.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Note: The first element needs to be 0 long[] vibrationWaveFormDurationPattern = {0, 10, 200, 500, 700, 1000, 300, 200, 50, 10}; // the vibration of the type custom waveforms needs the API version 26 if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) { // create VibrationEffect instance and createWaveform of vibrationWaveFormDurationPattern // -1 here is the parameter which indicates that the vibration shouldn't be repeated. VibrationEffect vibrationEffect = VibrationEffect.createWaveform(vibrationWaveFormDurationPattern, -1); // it is safe to cancel all the vibration taking place currently vibrator.cancel(); // now initiate the vibration of the device vibrator.vibrate(vibrationEffect); } } }); } }
Producción:
- Sería mejor probar esta aplicación en los dispositivos Android físicos con la versión API 26.
- Para saber cómo configurar el dispositivo Android físico, consulte Cómo ejecutar la aplicación de Android en un dispositivo real .
Publicación traducida automáticamente
Artículo escrito por adityamshidlyali y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA