1. Dotnet9首页
  2. .NET
  3. Xamarin.Forms

Xamarin.Forms中添加振动功能

阅读导航

  1. 本文背景
  2. 共享库中实现
  3. Android
  4. iOS
  5. 本文参考

1. 本文背景

站长有个项目,说下这个项目大致情况:

服务器是使用52ABP搭建的,在运行过程中免不了会出现各种问题,比如:

  1. 数据库访问异常;
  2. 与第三方服务器连接异常:http服务、WebSocket连接等;
  3. 程序逻辑本身Bug,导致部分业务可能出现差错;
  4. 其他

遇到这种问题,就想出了如下解决方案:

  1. 本地日志记录,使用log4net;
  2. 数据库关键日志记录,只记录特别严重的日志,方便日后定位问题使用,比如某时某刻,WebSocket断开了链接,是因为域名无法访问,还是本地网络断连等;
  3. 通过短信、邮件等推送报警;
  4. 开发一个移动App、桌面客户端、网站监控等系统接收报警信息。

本文只介绍开发的移动app,收到报警信息后,手机需要振动提醒,因为管理员都是手机不离手的,随时在玩手机,给他来个振动,让他提提神,知道来事了,哈哈。

移动App使用Xamarin.Forms开发,方便开发Android和iOS两个平台的app,下面说具体代码。

2. 共享库中的实现

新建Xamarin.Forms项目后,共享库默认就带了Xamarin.Essentials库,没有的话可以在Nuget中获取。

在收到报警的地方,使用下面的代码即可让手机振动起来了哦:

using Xamarin.Essentials;
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.
}

3. Android

Android中振动是需要提权的,而在Xamarin.Forms中开发Android APK添加振动权限很简单的。

需要具有 Vibrate 权限,并且必须在 Android 项目中进行配置。 可以通过以下方法添加此权限:

打开 Properties 文件夹下的 AssemblyInfo.cs 文件并添加 :

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

或更新 Android 清单:

打开 Properties 文件夹下的 AndroidManifest.xml 文件,并在“manifest”节点内添加以下代码 。

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

或右键单击 Android 项目并打开项目的属性。 在“Android 清单”下找到“所需权限:”区域,然后选中“VIBRATE”权限 。 这样会自动更新 AndroidManifest.xml 文件 。

4. iOS

iOS方便,没有任何设置。

平台差异

无平台差异。

  • 仅在设备设置为“响铃时振动”时振动。
  • 振动时长始终为 500 毫秒。
  • 无法取消振动。

5. 本文参考

参考: Xamarin.Essentials:振动

除非注明,文章均由 Dotnet9 整理发布,欢迎转载。

转载请注明:
作者:Dotnet9
链接:https://dotnet9.com/7191.html
来源:Dotnet9
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

发表评论

登录后才能评论