Я создал код ниже. Это мой класс bluetoothDeviceReciver, созданный в формах Xamarin Android Project. Я пытаюсь транслировать идентификатор устройства или что-то обычное, чтобы знать количество устройств, использующих то же приложение.
class BluetoothDeviceReceiver: BroadcastReceiver {
public override void OnReceive(Context context, Intent intent)
{
var action = intent.Action;
if (action != BluetoothDevice.ActionFound)
{
return;
}
var device = (BluetoothDevice)intent.GetParcelableExtra(BluetoothDevice.ExtraDevice);
if (device.BondState != Bond.Bonded)
{
var name = device.Name;
var address = device.Address;
}
}
}
и в основном действии OnCreate ()
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(savedInstanceState);
_receiver = new BluetoothDeviceReceiver();
RegisterReceiver(_receiver, new IntentFilter(BluetoothDevice.ActionFound));
BluetoothAdapter.DefaultAdapter.StartDiscovery();
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
Xamarin.Forms.Forms.SetFlags("RadioButton_Experimental");
RequestPermissions(permissionArr, RequestId);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
Этот OnRecieve () не вызывается, я не понимаю, почему именно? После получения всех адресов устройства я должен сохранить его в файле, который находится в проекте PCL, поэтому мне также нужен адрес устройства в проекте PCL.