0
シンプルなXamarin.Forms Bluetooth低エネルギースキャンアプリケーションを作成しました。私は唯一のAndroidのBluetoothを使用するように、私は、AndroidプロジェクトのMainActivity.csでスキャンを実装:Xamarin BLEスキャンのみが時々
namespace BlankAppXamlXamarinForms.Droid
{
[Activity(Label = "BlankAppXamlXamarinForms", Icon = "@drawable/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
private BluetoothManager _manager;
App app;
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
app = new App();
var appContext = Application.Context;
_manager = (BluetoothManager)appContext.GetSystemService(BluetoothService);
_manager.Adapter.BluetoothLeScanner.StartScan(new MyScanCallback(app));
LoadApplication(new App());
}
}
public class MyScanCallback : ScanCallback
{
App _app;
public MyScanCallback(App app) {
_app = app;
}
public override void OnScanResult(ScanCallbackType callbackType, ScanResult result)
{
_app.newDevice(result.Device.Name + " - " + result.Device.Address);
}
}
}
問題は、アプリケーションが開始された後、私はの表示を切り替えるときOnScanResultは瞬間だけの広告パケットを受信することです私の電話をオフにして、もう一度オンにします。一方、アプリケーションはほとんど広告パケットを受信しません。私のアプリケーションがいつもアクティブな広告パケットを受け取る方法は?
付箋サービスを見てください –
バックグラウンドで実行しているサービスは必要ありません。私はちょうどアプリケーションがディスプレイ上に見えるすべての時間広告パケットを受信したいです。 –