В коде это мало что говорит, вы должны поделиться, где вы используете этот метод?
Вот мои догадки:
Guess1:
Вопрос: На что инициализируется объект устройства?
Возможно, объект устройства вы получаете в методе null из того, что я вижу: если у вас есть класс что-то вроде этого
public class BluetoothDevice
{
public string Name { get; set; }
}
Вам нужно инициализировать его как минимум для одного объекта, прежде чем он будет передан в метод
BluetoothDevice device = new BluetoothDevice()
{
Name = "SomeBluetoothDevice"
};
Guess2:
Вы вызываете метод UpdateAdapter () до инициализации адаптера
РЕДАКТИРОВАТЬ:
Вот проблема, которую вы создаете новый экземпляр из MainActivity
if (device.BondState != Bond.Bonded)
{
**MainActivity obj = new MainActivity();**
obj.UpdateAdapter(device);
}
таким образом, он создаст новый экземпляр действия, но не будет вызывать метод OnCreate, потому что это не так, как действия создаются, вы можете создать с намерением типа
В любом случае, вот как вы можете исправить проблему: используйте уже существующий экземпляр из Activity в BluetoothDeviceReceiver, добавьте этот код:
public class BluetoothDeviceReceiver : BroadcastReceiver
{
MainActivity mainActivity;
public BluetoothDeviceReceiver(MainActivity mainActivity)
{
this.mainActivity = mainActivity;
}
public override void OnReceive(Context context, Intent intent)
{
mainActivity.UpdateAdapter(device);
}
}
В основной деятельности Vity:
skanujbtn.Click += (sender, e) =>
{
var receiver_ = new BluetoothDeviceReceiver(this);
...
}