Xamarin.Forms中添加振动功能
阅读导航
- 本文背景
- 共享库中实现
- Android
- iOS
- 本文参考
文章目录
1. 本文背景
站长有个项目,说下这个项目大致情况:
服务器是使用52ABP搭建的,在运行过程中免不了会出现各种问题,比如:
- 数据库访问异常;
- 与第三方服务器连接异常:http服务、WebSocket连接等;
- 程序逻辑本身Bug,导致部分业务可能出现差错;
- 其他
遇到这种问题,就想出了如下解决方案:
- 本地日志记录,使用log4net;
- 数据库关键日志记录,只记录特别严重的日志,方便日后定位问题使用,比如某时某刻,WebSocket断开了链接,是因为域名无法访问,还是本地网络断连等;
- 通过短信、邮件等推送报警;
- 开发一个移动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. 本文参考
除非注明,文章均由 Dotnet9 整理发布,欢迎转载。
转载请注明:
作者:Dotnet9
链接:https://dotnet9.com/7191.html
来源:Dotnet9
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。