Anonymous
Xamarin to maui обновление с APK на рутированном устройстве
Сообщение
Anonymous » 13 фев 2025, 14:03
наблюдения: < /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
1739444626
Anonymous
[b] наблюдения: < /strong> < /h1> xamarin в Xamarin Обновление: < /strong> перезагрузка происходит, как и ожидалось после обновления от Сборка Xamarin для новой сборки Xamarin. к новой сборке Maui. < /p> xamarin to maui update: < /strong> Хотя APK успешно установлен, автоматическая перезагрузка не происходит Полем Требуется ручный цикл питания (сброс питания), и только тогда новое приложение Maui запускается правильно. При обновлении от Xamarin до maui? [/b] [b] Соответствующий код Xamarin: [/b] [b] перезагрузчик: < /strong> < /h3> [code]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(); } } [/code] ceckupdateservice: [/b] [code]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"); } [/code] [b] mainActivity: [/b] [code]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); } [/code] [b] Соответствующий код MAUI: [/b] [b] RebootReceiver: [/b] [code]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(); } } [/code] [b] ceckupdateservice: [/b] [code]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"); } [/code] [b] mainActivity: [/b] [code]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();[/code] Я также пытаюсь с предварительными сборами приложения Xamarin, чтобы я мог исключить ошибки в текущей версии Подробнее здесь: [url]https://stackoverflow.com/questions/79435920/xamarin-to-maui-update-with-an-apk-on-a-rooted-device[/url]