在后台Xamarin.Forms中调用PCL方法

时间:2017-12-04 09:05:31

标签: android forms xamarin broadcastreceiver printer-control-language

我目前正在开发一个xamarin.forms应用程序(目前只有android)。如果连接蓝牙设备(应用程序未运行),此应用程序应执行一些任务。任务是从传感器收集一些数据并写入sqlite数据库。

我设法使用广播接收者捕捉蓝牙事件......

我的问题是我应该如何收集和写入这些数据(GPS)?

我可以通过PCL中的某些事件给他们打电话吗? 或者我需要一些服务?或者我应该在.android项目中创建该功能?

我是xamarin和android的新手,所以我感谢任何帮助:)

由于

1 个答案:

答案 0 :(得分:0)

  

我的问题是我应该如何收集和写入这些数据(GPS)?我可以通过PCL中的一些事件给他们打电话吗?或者我需要一些服务?或者我应该在.android项目中创建该功能吗?

有多种方法可以获取传感器数据,您可以在PCL中进行此操作。

方法1:

当您在bluetooth中捕获BroadcastReceiver个事件时,您可以使用OnReceive方法获取传感器数据。

方法2:

您可以使用DependencyService获取设备传感器数据,然后将其写入sqlite数据库。正如文件所说:

  

Xamarin.Forms允许开发人员在特定于平台的项目中定义行为。然后,DependencyService会找到正确的平台实现,允许共享代码访问本机功能。

关于DependencyService使用情况,您可以阅读该文档或参阅我的answer

方法3:

您可以使用DeviceMotionPlugin获取这些传感器数据。使用此插件时,您可以从任何项目或CrossDeviceMotion.Current致电PCL以获取对API的访问权限。

更新:

您可以在PCL中实施此功能。当您使用method 2method 3时,您可以在PCL中获取传感器数据,然后将这些数据存储到您的sqlite中。 仍然使用原生Android API在原生Android中获取传感器数据,但您可以在PCL 中使用这些数据。