Xamarin to maui обновление с APK на рутированном устройствеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Xamarin to maui обновление с APK на рутированном устройстве

Сообщение Anonymous »

наблюдения: < /strong> < /h1>
xamarin в Xamarin Обновление: < /strong>

перезагрузка происходит, как и ожидалось после обновления от Сборка Xamarin для новой сборки Xamarin. к новой сборке Maui. < /p>
xamarin to maui update: < /strong>

Хотя APK успешно установлен, автоматическая перезагрузка не происходит Полем Требуется ручный цикл питания (сброс питания), и только тогда новое приложение Maui запускается правильно. При обновлении от Xamarin до maui?

Соответствующий код Xamarin:
перезагрузчик: < /strong> < /h3>

Код: Выделить всё

public class RebootReceiver : BroadcastReceiver
{
public override void OnReceive(Context? context, Intent? intent)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "su";
process.StartInfo.Arguments = "-c reboot";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;

process.Start();
process.WaitForExit();
}
}
ceckupdateservice: [/b]

Код: Выделить всё

var attempt = await RunCommand($"su -c pm install --dont-kill -r {pathToApk}");
if (attempt.Succeeded)
{
Log.Information("Installed android update successfully. Requesting app restart...");
MessagingCenter.Send(this, "RebootSystem");
}
mainActivity:

Код: Выделить всё

protected override void OnCreate(Bundle savedInstanceState) {

RebootIntent = PendingIntent.GetBroadcast(this, 0, new Intent(this, typeof(RebootReceiver)), PendingIntentFlags.UpdateCurrent);
AlarmManager = (AlarmManager)this.GetSystemService(AlarmService);

...

MessagingCenter.Subscribe(this, "RebootSystem", (sender) =>
{
_logger.LogInformation("Received event from CheckUpdateService to reboot System!");
ScheduleReboot(60);
});

...
}

private void ScheduleReboot(int seconds)
{
long triggerAtMillis = SystemClock.ElapsedRealtime() + seconds * 1000;
AlarmManager.Set(AlarmType.ElapsedRealtimeWakeup, triggerAtMillis, RebootIntent);

_logger.LogInformation("Starting timer to reboot system... in {seconds}s", seconds);
}
Соответствующий код MAUI:
RebootReceiver:

Код: Выделить всё

public class RebootReceiver : BroadcastReceiver
{
public override void OnReceive(Context? context, Intent? intent)
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.FileName = "su";
process.StartInfo.Arguments = "-c reboot";
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;

process.Start();
process.WaitForExit();
}
}
ceckupdateservice:

Код: Выделить всё

var attempt = await RunCommand($"su -c pm install --dont-kill -r {pathToApk}");
if (attempt.Succeeded)
{
Log.Information("Installed android update successfully.  Requesting app restart...");
WeakReferenceMessenger.Default.Send(this, "RebootSystem");
}
mainActivity:

Код: Выделить всё

private PendingIntent RebootIntent;
private AlarmManager AlarmManager;

protected override void OnCreate(Bundle? savedInstanceState) {

RebootIntent = PendingIntent.GetBroadcast(this, 0, new Intent(this, typeof(RebootReceiver)), PendingIntentFlags.UpdateCurrent);
AlarmManager = (AlarmManager)GetSystemService(AlarmService);

...
WeakReferenceMessenger.Default.Register(this, "RebootSystem", (obj, sender) =>
{
_logger.LogInformation("Received event from CheckUpdateService to reboot Sytem!");
ScheduleReboot(60);
});

...
}

private void ScheduleReboot(int seconds)
{
long triggerAtMillis = SystemClock.ElapsedRealtime() + seconds * 1000;
AlarmManager.Set(AlarmType.ElapsedRealtimeWakeup, triggerAtMillis, RebootIntent);

_logger.LogInformation("Starting timer to reboot system... in {seconds}s", seconds);
}
< /code>
Я стараюсь начать перезагрузку также без Alammanager, но также не работает.
RebootIntent.Send();

Я также пытаюсь с предварительными сборами приложения Xamarin, чтобы я мог исключить ошибки в текущей версии

Подробнее здесь: https://stackoverflow.com/questions/794 ... ted-device
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»