【问题标题】:Programmatically downloading apk from web using Xamarin使用 Xamarin 以编程方式从 Web 下载 apk
【发布时间】:2018-01-07 10:06:25
【问题描述】:

我编写了一个应用程序,我现在正尝试从我的网络空间下载一个 apk。我现在用谷歌搜索了一整天,我认为我发现的所有内容都是针对 Java 的,但我需要 C#。

这是我发现的(不仅是这个,而且是一个例子):Downloading APK from server and installing it to device(但它不工作,我不知道为什么)。

但是我的代码有一些问题。我不能使用setRequestMethodgetinputstream 等。

然后我尝试了这个,因为它似乎更容易:

WebClient webClient = new WebClient();
Uri newUri = new Uri("http://mywebspace.bplaced.net/AppDownload.apk");
webClient.DownloadFile(newUri,Path.Combine(Android.OS.Environment.DirectoryDownloads, "AppDownload.apk"));

这也行不通。我收到消息“找不到路径的一部分”(有点像这样,我的 Visual Studio 不是英文的)。我输入什么作为我的路径并不重要。

【问题讨论】:

  • 在这里提问时,请保持简洁,不要乞求和恳求。谢谢。
  • 下次,请提供有关您的环境的更多信息。例如。告诉我们您正在使用 Xamarin 编写适用于 Android 的移动应用程序。

标签: c# android xamarin download apk


【解决方案1】:

这似乎是一个重复的问题,已在此处回答:How to download a file from a URL in C#?

尽管如此,我已经测试了您的代码,并且对我来说它可以正常工作。我可以从 url 下载文件。所以,我的猜测是,你的 URL 有错字,防火墙有问题,等等。

请复制您在源代码中输入的 URL 并将其粘贴到您选择的浏览器中。并查看下载是否开始。只是为了确保 URL 是正确的。

最好给我们提供完整的错误信息。

【讨论】:

  • 哦,我没看到那个帖子。但是该 URL 可以正常工作,但是当我通过我的 android 应用程序尝试它时,它不再工作了。每次我都会收到此消息:System.IO.DirectoryNotFoundException:找不到路径“/Download/AppDownload.apk”的一部分。当我使用 android 时,我必须对我的路径做一些特别的事情吗?我的意思是,如果我收到消息,找不到路径的一部分,也许我必须改变一些东西。就像在电脑上一样,你使用类似“C:”的东西,但在手机上我只使用“downloads/app.apk”。很难为我解释
  • 好的。这让事情变得更清楚了一些。下载似乎不是问题,但根据错误消息,存储下载有问题。请尝试将您的Path.Combine 替换为Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath, "AppDownload.apk")。还要仔细检查您的应用是否请求了正确的权限才能写入所需的目录。
  • 谢谢。我想我越来越近了。但现在我收到消息:拒绝访问路径“/storage/emulated/0/AppDownload.apk”。我怎样才能给应用程序所需的权限?我有一个小问题,如果它还可以:3。 ExternalStorageDirectory‌ 意味着我需要一张存储卡吗?我有一个,但只是为了确定它是否 100% 需要:D
  • 您需要更新您的AndroidManifest.xml 并添加以下两个条目:uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"。看看documentation
  • 这行得通。但我现在在任何地方都找不到文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-07
  • 1970-01-01
  • 2018-02-11
  • 2019-04-13
相关资源
最近更新 更多