Как заставить Android-устройство вибрировать?

Вот однострочный, чтобы проверить, является ли sNum допустимым числовым значением; он был протестирован для самых разных входов:

!isNaN(+s.replace(/\s|\$/g, ''));  // returns True if numeric value
446
задан Liam George Betsworth 21 June 2013 в 10:15
поделиться

2 ответа

Вибрируйте, не используя разрешение

, Если Вы хотите просто вибрировать устройство однажды для обеспечения обратной связи на пользовательском действии. Можно использовать performHapticFeedback() функция View. Этому не нужно VIBRATE разрешение, которое будет объявлено в декларации.

Использование следующая функция как верхний уровень функционируют в некотором общем классе как Utils.kt Вашего проекта:

/**
 * Vibrates the device. Used for providing feedback when the user performs an action.
 */
fun vibrate(view: View) {
    view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
}

И затем используют его где угодно в Вашем Fragment или Activity как следующее:

vibrate(requireView())

Простой как это!

1
ответ дан 22 November 2019 в 22:52
поделиться

Обновление Kotlin для большей безопасности типов

Использование это как высокоуровневая функция в некотором общем классе Вашего проекта, такого как Utils.kt

// Vibrates the device for 100 milliseconds.
fun vibrateDevice(context: Context) {
    val vibrator = getSystemService(context, Vibrator::class.java)
    vibrator?.let {
        if (Build.VERSION.SDK_INT >= 26) {
            it.vibrate(VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE))
        } else {
            @Suppress("DEPRECATION")
            it.vibrate(100)
        }
    }
}

И затем называет его где угодно в Вашем коде как следующее:

vibrateDevice(requireContext())

Объяснение

Используя Vibrator::class.java более безопасно с точки зрения типов, чем использование String константы.

Мы проверяем vibrator на nullability использование let { }, потому что, если вибрация не доступна для устройства, эти vibrator, будет null.

нормально подавлять депрекацию в else пункт, потому что предупреждение от более нового SDK.

Мы не должны просить разрешение во времени выполнения для использования вибрации. Но мы должны объявить это в [1 110] как следующее:

<uses-permission android:name="android.permission.VIBRATE"/>
0
ответ дан 22 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: