我在 Play 商店之外有一个 Android 应用程序。它通过下载新的 APK 并使用 Intent 调用安装程序对话框来更新自身。更新功能在 Android 10 上不再起作用。
我现在需要在 Android 10 上使用 PackageInstaller API,但无法让它工作。我的应用程序不是设备或配置文件所有者,但由于我不想静默安装,所以我认为应该没问题。
我的问题是,一旦我提交会话,就绝对不会发生任何事情。
PackageInstaller installer = activity.PackageManager.PackageInstaller;
PackageInstaller.SessionParams sessionParams = new PackageInstaller.SessionParams(PackageInstallMode.FullInstall);
int sessionId = installer.CreateSession(sessionParams);
PackageInstaller.Session session = installer.OpenSession(sessionId);
var input = new FileStream(pfad, FileMode.Open, FileAccess.Read);
var packageInSession = session.OpenWrite("package", 0, -1);
input.CopyTo(packageInSession);
packageInSession.Close();
input.Close();
//That this is necessary could be a Xamarin bug.
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Intent intent = new Intent(activity, activity.Class);
intent.SetAction("com.example.android.apis.content.SESSION_API_PACKAGE_INSTALLED");
PendingIntent pendingIntent = PendingIntent.GetActivity(activity, 0, intent, 0);
IntentSender statusReceiver …Run Code Online (Sandbox Code Playgroud)