1

현재 xamarin.forms 앱에서 작업중인 메신저 (현재 Android에만 해당). 이 앱은 블루투스 장치가 연결되어 있으면 (앱이 실행되고 있지 않은 경우) 몇 가지 작업을 수행해야합니다. 이 작업은 센서에서 일부 데이터를 수집하고 sqlite 데이터베이스를 작성하는 것입니다. 내가 브로드 캐스트 리시버를 사용하여 블루투스 이벤트를 잡으려고 관리 백그라운드에서 PCL 메소드 호출 Xamarin.Forms

...

내가 어떻게 내 질문 수집하고 (GPS)를 그 데이터를 작성해야합니까?

PCL의 일부 이벤트를 통해 호출 할 수 있습니까? 또는 일부 서비스가 필요합니까? 아니면 안드로이드 프로젝트에서 그 funcionality를 만들어야합니까?

임 자 마린과 안드로이드에서 초보자는 그래서 난 어떤 도움 :)

감사

감사

답변

0

내가 어떻게 내 질문 수집하고 그 데이터 (GPS)를 작성해야합니까? PCL의 일부 이벤트를 통해 전화 할 수 있습니까? 아니면 서비스가 필요합니까? 아니면 안드로이드 프로젝트에서 그 funcionality를 만들어야합니까?

센서 데이터를 얻는 방법에는 여러 가지가 있습니다. PCL에서 이렇게 할 수 있습니다.

방법 1 :

당신이 당신의 BroadcastReceiver에서 bluetooth 이벤트를 잡아, 당신은 OnReceive 방법 센서 데이터를 얻을 수 있습니다.

방법 2 :

당신은 장치의 센서 데이터를 얻을 수 DependencyService를 사용하고는 sqlite 데이터베이스를 할 작성할 수 있습니다. 문서가 말한대로 :

Xamarin.Forms는 개발자가 플랫폼 특정 프로젝트에서 동작을 정의 할 수 있도록합니다. DependencyService는 올바른 플랫폼 구현을 찾아 공유 코드가 기본 기능에 액세스 할 수 있도록합니다.

DependencyService 사용법을 읽거나 내 answer을 참조하십시오.

방법 3 :

이러한 센서 데이터를 얻을 수 DeviceMotionPlugin를 사용할 수 있습니다. 이 플러그인을 사용하면 모든 프로젝트에서 CrossDeviceMotion.Current 또는 PCL을 호출하여 API에 액세스 할 수 있습니다.

업데이트 :

당신은 당신의 PCL에서이 기능을 구현 할 수 있습니다. method 2 또는 method 3을 사용할 때 PCL에 센서 데이터를 가져올 수 있으며이를 sqlite에 저장할 수 있습니다. 네이티브 Android API를 사용하여 기본 Android에서 센서 데이터를 가져 오지 만이 데이터는 PCL에서 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 그래서 gps 기능 (geolocator 플러그인)과 sqlite 기능을 .android 프로젝트로 옮겨야합니다.백그라운드에서 OnReceive()에서 호출하면 앱이 실행될 때 DependencyService를 사용하여 호출됩니다. 권리 ? –

+0

@boris_dv, 내 답변을 업데이트했습니다. 문제가 있으면 언제든지 물어보십시오. –

+0

@boris_dv, 문제를 해결 했습니까? –