SensorManager _sm;
Sensor proximity;
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
_sm = (SensorManager)this.GetSystemService(SensorService);
if (_sm.GetSensorList(SensorType.Proximity).Count != 0)
{
proximity = _sm.GetDefaultSensor(SensorType.Proximity);
_sm.RegisterListener(this, proximity, SensorDelay.Normal);
}
}
OnSensorChanged
public void OnSensorChanged(SensorEvent e)
{
if (mWakeLock == null)
{
mWakeLock = mPowerManager.NewWakeLock(WakeLockFlags.ProximityScreenOff, "incall");
mWakeLock.Acquire();
}
Sensor = false;
}
_sm.RegisterListener(this, proximity, SensorDelay.Normal);
поэтому когда вы выходите с окна обязательно снимите регистрацию , что бы OnSensorChanged
выключился , так же на вызвать метод mWakeLock.Acquire();
вот так я это реализовалif (null != mWakeLock)
{
mWakeLock.Release();
mWakeLock = null;
}
_sm.UnregisterListener(this, proximity);
Listview.ScrollTo();
. Поэтому когда я нахожусь внизу списка это удобно, а если я листю историю сообщений(то есть нахожусь где в середине списка или в начале) и мне написали сообщения , я опять попадаю вниз