Krydre Android-appene dine med Googles vibratortjeneste

Hvis du vil forbedre brukeropplevelsen til appen din ved å gi haptisk tilbakemelding, men er for redd for å google "Android Vibrator", har du kommet til rett sted.

Siden versjon 1.0 av Android har SDK inkludert en systemvibratortjeneste som gir kreative utviklere muligheten til å få enheten til å riste og implementere gjentagende, meningsfulle mønstre. Resultatene kan være ganske dramatiske. Følg denne opplæringen om bruk av Android-vibrator-tjenesten, eller last ned hele prosjektet og importer det direkte til ditt Eclipse-arbeidsområde.

1. Lag et nytt Android-prosjekt. Målrette Android 1.6 eller nyere. Sørg for å gi nytt navn til oppstartsaktiviteten til Main.java.

2. Androids vibratortjeneste er maskinvare, så vi må erklære en spesiell tillatelse i manifestet for å få tilgang til den.

 AndroidManifest.xml 

"1.0" encoding = "utf-8" ?>

"Http://schemas.android.com/apk/res/android"

package = "com.authorwjf.vibrator"

android: versionCode = "1"

android: versionName = "1.0" >

"android.permission.VIBRATE" />

"4" /> android: icon = "@ drawable / ic_launcher"

android: label = "@ string / app_name" >

android: name = ".Main"

android: label = "@ string / app_name" >

"android.intent.action.MAIN" />

"android.intent.category.LAUNCHER" />

3. I mappen / res / layout må vi legge til en enkelt knapp for demonstrasjonens formål.

 main.xml 

"1.0" encoding = "utf-8" ?>

"Http://schemas.android.com/apk/res/android"

android: layout_width = "fill_parent"

android: layout_height = "fill_parent"

android: orientering = "vertikal"

android: gravitasjon = "sentrum" >

android: layout_margin = "10dip"

android: gravitasjon = "sentrum"

android: layout_width = "fill_parent"

android: layout_height = "wrap_content"

android: text = "Hallo Vibrator!" />

android: layout_margin = "10dip"

android: layout_gravity = "sentrum"

android: id = "@ + id / toggle"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: text = "ON" />

4. Vi kan fullføre i Main.java-filen i / src-mappen. Vi erklærer variablene i hele klassen, koble opp knappen og aktiverer vibratortjenesten.

 Main.java- pakke com.authorwjf.vibrator; import android.app.Aktivitet; import android.content.Context; import android.os.Bundle; import android.os.Vibrator; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class Main utvider aktivitetsredskaper OnClickListener { 

Vibrator mVibrator;

@Overstyring

public void onCreate (Bundle savedInstanceState) { super .onCreate (savedInstanceState);

setContentView (R.layout. main );

findViewById (R.id. toggle ) .setOnClickListener ( dette );

mVibrator = (Vibrator) getSystemService (Context. VIBRATOR_SERVICE );

}

}

5. Legg til klikk-behandleren. Legg merke til parametrene for vibrasjonsmetoden. Den første parameteren er en rekke lengter. Den første lange i den arrayen er antall millisekunder som skal pause før vibrasjonene begynner. Det følgende er en serie vekslende av og på vibrasjoner, selv om vi i vårt tilfelle bare vibrerer i 200 millisekunder og deretter slår den av. Den siste parameteren er repetisjonsindeksen, så med andre ord gjentar eller sekvenserer vi fra posisjon 0 i matrisen. En negativ verdi for den endelige parameteren deaktiverer repetisjonsfunksjonaliteten, så mønsteret kjøres bare en gang. For våre formål har vi i hovedsak skapt en kontinuerlig vibrasjon ved å gjenta hele saken og bruke en null millisekund pause i begge ender av matrisen.

 @Override offentlig tomrom onClick (Vis v) { 

Knapp b = (Knapp) v;

if (b.getText (). toString (). er likIngnoreCase ("ON")) {

b.setText ( "AV");

mVibrator.vibrate ( ny lang {0, 200, 0}, 0); } annet {

b.setText ( "ON");

mVibrator.cancel ();

}

}

6. Vi må overstyre metoden for destruksjon; Dette forhindrer at vibratoren ved et uhell kommer igjen når appen skyves til bakgrunnen eller telefonen roteres. Å ha en konstant vibrerende telefon ville være vanskelig på batteriet og flaut!

 @Override offentlig tomrom onDestroy () { if (mVibrator! = Null ) 

mVibrator.cancel ();

super .onDestroy (); }

Vi er klare til å laste inn koden og prøve den.

Figur A

Mens koden kjøres på emulatoren ( figur A ), vibrerer ikke emulatoren, så du går glipp av den lille spenningen når enheten nesten hopper ut av hånden din. OK, kanskje det er en overdrivelse, men det er noen ganske interessante bruksområder for vibratortjenesten. Fra å varsle brukere når volumet er lavt til å implementere en stille versjon av Morse-kode, lar vibratortjenesten utvikleren fange en kraftig menneskelig sans i brukeropplevelsen. Bare husk å bruke begrepet haptics og ikke vibrator når sjefen din spør deg hva all racketen kom fra kuben din i går!

© Copyright 2021 | pepebotifarra.com