Класс Vibrator |
![]() |
Добавил(а) microsin | ||||||||||||||||||||
Java-класс Vibrator в Android предназначен для управления встроенным в устройство вибратором. Это можно использовать для оживления игр и в других случаях, для привлечения внимания пользователя. Иерархия Vibrator совсем короткая: java.lang.Object -> android.os.Vibrator. Здесь приведен перевод документации [1]. Класс Vibrator программно запускает вибрацию устройства. Если Ваш процесс (программа) завершается, то любая запущенная вибрация также прекращается. Прим. переводчика: на самом деле это не так, все с точностью до наоборот - вибратор продолжает работать. Возможно, здесь имелось в виду, что прекращает работу метод vibrate, который воспроизводит алгоритм управления вибрациями из массива pattern (см. описание ниже). Чтобы получить экземпляр вибратора системы, вызовите getSystemService(String), где в качестве аргумента нужно передать VIBRATOR_SERVICE. Общее описание методов класса Vibrator приведено в таблице.
[Описание публичных методов класса Vibrator] public abstract void cancel () Добавлен в API level 1. Выключает вибратор. Этот метод требует, чтобы у вызывающего кода было разрешение (права) на функцию VIBRATE. public abstract boolean hasVibrator () Добавлен в API level 11. Делает проверку, есть ли в устройстве вибратор. Возвращает true, если в устройстве присутствует вибратор, иначе false. public abstract void vibrate (long[] pattern, int repeat) Добавлен в API level 1. Запускает процесс вибрации по указанному алгоритму (заданному в pattern). Переданный в качестве параметра массив целых pattern задает длительности в миллисекундах, на которые вибратор будет включен или выключен. Первое значение в массиве показывает количество миллисекунд ожидания, перед тем как вибратор включится. Следующее значение покажет, сколько миллисекунд вибратор будет работать, пока не выключится. Последующие значения задают чередуемые длительности в миллисекундах, чтобы выключить или включить вибратор. Чтобы запустить повторы проигрывания массива, укажите в параметре repeat индекс в массиве, откуда должны начинаться повторы, или передайте -1 для запрета повторов. Этот метод требует, чтобы у вызывающего кода было разрешение (права) на функцию VIBRATE. public abstract void vibrate (long milliseconds) Добавлен в API level 1. Запускает постоянное вибрирование на указанное время в миллисекундах. Этот метод требует, чтобы у вызывающего кода было разрешение (права) на функцию VIBRATE. [Пример использования класса Vibrator] 1. Добавьте в тег manifest файла AndroidManifest.xml тег uses-permission, разрешающий использование вибратора: < ?xml version="1.0" encoding="utf-8"? > < manifest ... > ... < uses-permission android:name="android.permission.VIBRATE" /> ... < /manifest > Если этого не сделать, то приложение будет завершаться с ошибкой "FATAL EXCEPTION: main", "java.lang.IllegalStateException: Could not execute method of the activity", "Caused by: java.lang.SecurityException: Requires VIBRATE permission". 2. Создайте глобальную переменную для класса Vibrator (например, в пределах класса MainActivity): private Vibrator Vibro; 3. В функции инициализации (например, в обработчике onCreate класса MainActivity) вызовите функцию getSystemService: Vibro = (Vibrator)this.getSystemService(VIBRATOR_SERVICE); 4. Теперь можете вызывать методы класса Vibrator: //Запуск вибрации на 100 мс. Vibro.vibrate(100); Готовый проект тестирования вибратора можно скачать по ссылке [2]. [Ссылки] 1. Vibrator site:developer.android.com. |