如何解决无法从 Xamarin.Essentials 选择器获取 apk 文件的位置路径
我需要选择 apk 文件并获取使用 Xamarin 表单开发的应用程序中的文件路径。我已经使用 Xamarin.Essentials 来获取选择器。我可以获取图像和 pdf 的路径,但不能获取 apk。当我尝试选择 apk 文件时,出现 File not Found 异常。
private async void Button_Clicked(object sender,System.EventArgs e)
{
try
{
var customFileType = new FilePickerFileType(new Dictionary<DevicePlatform,IEnumerable<string>>
{
{
DevicePlatform.Android,new[] { "application/vnd.android.package-archive" }
}
});
var file = await FilePicker.PickAsync(new PickOptions
{
PickerTitle = "Please select a file",FileTypes = customFileType,});
if (file != null)
{
var ss = file.FullPath;
}
}
catch (Exception ee)
{
}
var apkKey = DependencyService.Get<IHashCode>().GetPackageSignature();
lll.Text = apkKey;
}
异常...
at Java.Interop.jnienvironment+InstanceMethods.CallNonvirtualObjectMethod (Java.Interop.JniObjectReference instance,Java.Interop.JniObjectReference type,Java.Interop.JniMethodInfo method,Java.Interop.JniArgumentValue* args) [0x0008e] in <94b04e1756104d1fa1d144932ae2720c>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualObjectMethod (System.String encodedMember,Java.Interop.IJavaPeerable self,Java.Interop.JniArgumentValue* parameters) [0x0001f] in <94b04e1756104d1fa1d144932ae2720c>:0
at Android.Content.ContentResolver.OpenInputStream (Android.Net.Uri uri) [0x00027] in /Users/builder/azdo/_work/278/s/xamarin-android/src/Mono.Android/obj/Release/monoAndroid10/android-30/mcw/Android.Content.ContentResolver.cs:1283
at Xamarin.Essentials.FileSystem.OpenContentStream (Android.Net.Uri uri,System.String& extension) [0x00018] in D:\a\1\s\Xamarin.Essentials\FileSystem\FileSystem.android.cs:268
at Xamarin.Essentials.FileSystem.CacheContentFile (Android.Net.Uri uri) [0x00015] in D:\a\1\s\Xamarin.Essentials\FileSystem\FileSystem.android.cs:235
at Xamarin.Essentials.FileSystem.EnsurePhysicalPath (Android.Net.Uri uri,System.Boolean requireExtendedAccess) [0x00034] in D:\a\1\s\Xamarin.Essentials\FileSystem\FileSystem.android.cs:87
at Xamarin.Essentials.FilePicker+<>c__displayClass2_0.<PlatformPickAsync>g__OnResult|0 (Android.Content.Intent intent) [0x00008] in D:\a\1\s\Xamarin.Essentials\FilePicker\FilePicker.android.cs:42
at Xamarin.Essentials.IntermediateActivity.OnActivityResult (system.int32 requestCode,Android.App.Result resultCode,Android.Content.Intent data) [0x00035] in D:\a\1\s\Xamarin.Essentials\Platform\Platform.android.cs:398
--- End of stack trace from prevIoUs location where exception was thrown ---
at Xamarin.Essentials.FilePicker.PlatformPickAsync (Xamarin.Essentials.PickOptions options,System.Boolean allowMultiple) [0x0013e] in D:\a\1\s\Xamarin.Essentials\FilePicker\FilePicker.android.cs:56
at Xamarin.Essentials.FilePicker.PickAsync (Xamarin.Essentials.PickOptions options) [0x0001c] in D:\a\1\s\Xamarin.Essentials\FilePicker\FilePicker.shared.cs:12
at GetSignature.MainPage.Button_Clicked (System.Object sender,System.EventArgs e) [0x00070] in C:\Users\Dushan Madushanka\source\repos\GetSignature\GetSignature\GetSignature\MainPage.xaml.cs:30
--- End of managed Java.IO.FileNotFoundException stack trace ---
java.io.FileNotFoundException: No such file or directory
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。