簡體   English   中英

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

[英]Call PCL method in background Xamarin.Forms

我目前正在使用xamarin.forms應用(目前僅適用於android)。 如果連接了藍牙設備(該應用未運行),則該應用應執行一些任務。 任務是從傳感器收集一些數據並將其寫入sqlite數據庫。

我設法使用廣播接收器捕獲了藍牙事件...

我的問題是我應該如何收集和寫入這些數據(GPS)?

我可以通過PCL中的一些事件來打電話給他們嗎? 還是我需要一些服務? 還是應該在.android項目中創建該功能?

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

謝謝

我的問題是我應該如何收集和寫入這些數據(GPS)? 我可以通過PCL中的一些事件來打電話給他們嗎? 還是我需要一些服務? 還是應該在.android項目中創建該功能?

有幾種獲取傳感器數據的方法,您可以在PCL這樣做。

方法1:

當您在BroadcastReceiver捕獲bluetooth事件時,可以在OnReceive方法中獲取傳感器數據。

方法2:

您可以使用DependencyService獲取設備傳感器數據,然后將其寫入sqlite數據庫。 正如文件所說:

Xamarin.Forms允許開發人員定義特定於平台的項目中的行為。 然后,DependencyService找到正確的平台實現,從而允許共享代碼訪問本機功能。

關於DependencyService用法,您可以閱讀文檔或參考我的回答

方法3:

您可以使用DeviceMotionPlugin獲取這些傳感器數據。 使用此插件時,可以從任何項目或PCL調用CrossDeviceMotion.Current以獲得對API的訪問。

更新:

您可以在PCL實現此功能。 使用method 2method 3 ,可以在PCL獲取傳感器數據,然后將它們存儲到sqlite中。 仍然使用本機Android API獲取本機Android中的傳感器數據,但是您可以在PCL使用這些數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM