Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
using GeneralUpdate.Maui.Android.Models;

#if ANDROID
using Android.Content;
using Android.OS;
using AndroidApp = Android.App;
using AndroidContent = Android.Content;
using AndroidNet = Android.Net;
using AndroidOS = Android.OS;
using AndroidX.Core.Content;
using Java.IO;
using JavaFile = Java.IO.File;
#endif

namespace GeneralUpdate.Maui.Android.Platform.Android;
Expand All @@ -18,12 +20,12 @@ public sealed class AndroidApkInstaller : IApkInstaller
public bool CanRequestPackageInstalls()
{
#if ANDROID
if (Build.VERSION.SdkInt < BuildVersionCodes.O)
if (AndroidOS.Build.VERSION.SdkInt < AndroidOS.BuildVersionCodes.O)
{
return true;
}

var context = Android.App.Application.Context;
var context = AndroidApp.Application.Context;
return context.PackageManager?.CanRequestPackageInstalls() ?? false;
#else
return false;
Expand Down Expand Up @@ -54,29 +56,29 @@ public Task TriggerInstallAsync(string apkFilePath, AndroidInstallOptions option

if (!System.IO.File.Exists(apkFilePath))
{
throw new FileNotFoundException("APK file was not found.", apkFilePath);
throw new System.IO.FileNotFoundException("APK file was not found.", apkFilePath);
}

if (!CanRequestPackageInstalls())
{
throw new InvalidOperationException("App is not allowed to request package installs. Grant 'install unknown apps' permission in system settings.");
}

var context = Android.App.Application.Context;
var apkFile = new File(apkFilePath);
var context = AndroidApp.Application.Context;
var apkFile = new JavaFile(apkFilePath);

using var intent = new Intent(Intent.ActionView);
intent.AddFlags(ActivityFlags.NewTask);
intent.AddFlags(ActivityFlags.GrantReadUriPermission);
using var intent = new AndroidContent.Intent(AndroidContent.Intent.ActionView);
intent.AddFlags(AndroidContent.ActivityFlags.NewTask);
intent.AddFlags(AndroidContent.ActivityFlags.GrantReadUriPermission);

Android.Net.Uri apkUri;
if (Build.VERSION.SdkInt >= BuildVersionCodes.N)
AndroidNet.Uri apkUri;
if (AndroidOS.Build.VERSION.SdkInt >= AndroidOS.BuildVersionCodes.N)
{
apkUri = FileProvider.GetUriForFile(context, options.FileProviderAuthority, apkFile);
}
else
{
apkUri = Uri.FromFile(apkFile);
apkUri = AndroidNet.Uri.FromFile(apkFile);
}

intent.SetDataAndType(apkUri, options.MimeType);
Expand Down
Loading