Вибрация на Android Xamarin

Сейчас я работаю над приложением, используя Xamarin андроид. Я не могу получить устройство vibrate хоть.

Vibrator vibrator = (Vibrator)Activity.GetSystemService(Context.VibratorService);
vibrator.Vibrate(100);

Он строит, но вылетает, когда я нажимаю кнопку, связанную с кодом.

1 ответ

Решение

Это решает проблему AndroidManifest.xml

<uses-permission android:name="android.permission.VIBRATE"/>

Требуется разрешение Vibrate, которое необходимо настроить в проекте Android. Это можно добавить следующими способами:

Откройте файл AssemblyInfo.cs в папке Properties и добавьте:

C#

[assembly: UsesPermission(Android.Manifest.Permission.Vibrate)]

ИЛИ

Обновите манифест Android:

Откройте файл Android Manifest.xml в папке "Свойства" и добавьте следующее внутри узла манифеста.

XML

<uses-permission android:name="android.permission.VIBRATE" />

Или щелкните правой кнопкой мыши проект Android и откройте свойства проекта. В Android Manifest найдите область Required permissions: и проверьте разрешение VIBRATE. Это автоматически обновит файл Android Manifest.xml.

Добавьте ссылку на Xamarin.Essentials в свой класс:

using Xamarin.Essentials;

Функциональность вибрации может быть запрошена на установленный период времени или значение по умолчанию 500 миллисекунд.

try
{
    // Use default vibration length
    Vibration.Vibrate();

    // Or use specified time
    var duration = TimeSpan.FromSeconds(1);
    Vibration.Vibrate(duration);
}
catch (FeatureNotSupportedException ex)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Other error has occurred.
}

Отмена вибрации устройства может быть запрошена с помощью метода Отмена:

try
{
    Vibration.Cancel();
}
catch (FeatureNotSupportedException ex)
{
    // Feature not supported on device
}
catch (Exception ex)
{
    // Other error has occurred.
}

ссылка - https://docs.microsoft.com/en-us/xamarin/essentials/vibrate?tabs=android

Другие вопросы по тегам