Utworzymy bardzo prostą aplikację uruchamiającą wibracje telefonu.
Plan: interfejs->kod Java->uprawnienia
1. Tworzymy projekt typu Android Application o nazwie "Wibracje" z BlankActivity.
W pliku activity_main.xml definiujemy interfejs (suwak i dwa przyciski)
2. Przechodzimy do MainActivity.java. Definiujemy dwa pola klasy MainActivity, w
metodzie onCreate wiążemy suwak, przycisk i pobieramy instancję wibratora.
Z przyciskiem wiążemy metodę, która uruchamia wibracje.
Do wibracji potrzebujemy instancji klasy Vibrator. Kluczowa jest jego metoda vibrate.
Argumentem metody Vibrator.vibrate jest czas wibracji w milisekundach.
public class MainActivity extends Activity {
//zdefiniowane pola klasy
SeekBar suwak;
Button przycisk1;
Button przycisk2;
Vibrator wibrator;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//konfiguracja suwaka i przycisku
suwak = (SeekBar)findViewById(R.id.seekBar1);
przycisk1 = (Button)findViewById(R.id.button1);
przycisk1.setOnClickListener(przycisk1Listener);
przycisk2 = (Button)findViewById(R.id.button2);
przycisk2.setOnClickListener(przycisk2Listener);
//pobranie referencji do instancji z biezacego kontekstu
wibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
}
//dwie metody nasluchujace
private View.OnClickListener przycisk1Listener = new View.OnClickListener()
{
public void onClick(View view)
{
if(wibrator.hasVibrator()) {
int czas = suwak.getProgress();
Toast.makeText(getApplicationContext(), "Uruchamiam wibracje na " + Integer.toString(czas) + " ms", Toast.LENGTH_SHORT).show();
wibrator.vibrate(czas);
}
else Toast.makeText(getApplicationContext(), "Brak wibratora", Toast.LENGTH_SHORT).show();
}
};
private View.OnClickListener przycisk2Listener = new View.OnClickListener()
{
public void onClick(View view)
{
if(wibrator.hasVibrator()) {
Toast.makeText(getApplicationContext(), "Zatrzymuję wibracje", Toast.LENGTH_SHORT).show();
wibrator.cancel();
}
}
};
...
3. Aby móc uruchomić metodę Vibrator.vibrate aplikacja potrzebuje uprawnień.
Nadajemy je w pliku AndroidManifest.xml (wewnatrz znacznika manifest).
Nie ma możliwości ustalenia częstotliwości wibracji, tylko czas trwania.