关键词:
【中文标题】使用 volley 下载和安装 APK【英文标题】:Downloading and installing an APK using volley 【发布时间】:2017-01-28 02:05:54 【问题描述】:我正在尝试通过网络下载更新。这是最新的凌空版本。我目前使用的是Stringrequest
。
class UpdateService : IntentService("Update Serivce")
companion object
val VERSION_URL = "<version url>"
val FILE_URL = "<apk url>"
val LOG_TAG = "UPDATE"
fun initialize(context: Context) = context.startService(Intent(context, UpdateService::class.java))
/**
* Checks remote for an update
*/
override fun onHandleIntent(intent: Intent?)
Log.d(LOG_TAG, "Retrieving new version")
// Get version number
NetworkService().get(Uri.parse(VERSION_URL),
Response.Listener success(it) ,
Response.ErrorListener
Log.d(LOG_TAG, "Failed to update $it.toString()")
FirebaseCrash.report(it)
)
private fun success(it: String?)
Log.d(LOG_TAG, "Remote version: $it")
Log.d(LOG_TAG, "Local version: $BuildConfig.VERSION_NAME")
if (!it.equals(BuildConfig.VERSION_NAME))
Log.d(LOG_TAG, "Fetching new update")
NetworkService().get(
Uri.parse(FILE_URL),
Response.Listener installUpdate(it) ,
Response.ErrorListener
Log.d(LOG_TAG, "failed to get new APK")
FirebaseCrash.report(it)
)
private fun installUpdate(it: String)
Log.d(LOG_TAG, "retrieved update")
val file = File(this.externalCacheDir, "update.apk")
if(!file.exists())
file.createNewFile()
file.writeBytes(it.toByteArray())
val intent = Intent(Intent.ACTION_VIEW)
intent.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive")
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
Log.d(LOG_TAG, "Installing")
startActivity(intent)
启动安装活动时,我会收到来自 android 的解析错误。
如何通过 volley 下载文件并将其保存为可用的 APK?
【问题讨论】:
检查apk的最低版本和你的手机版本 我确实在使用与我用于开发的设备相同的设备。这不是这里的问题。 是签名的apk吗?您是否启用了unknown resources
设置?在某些情况下,如果 apk 文件未正确/完全下载,则可能会发生此错误。
此 APK 已签名,允许使用未知资源。
【参考方案1】:
问题在于目录。我尝试写入缓存目录,然后从那里安装。将目录更改为context.getExternalFilesDir(<Appname>, "update.apk")
,它将毫无问题地安装。
【讨论】:
volley的初步了解
...的操作,如文本下载,表现则没有那么好Volley内部仍然是使用的HttpURLConnection和HttpClient进行网络请求的,只是对于不同的Android版本进行了响应的切换,2.3之前使用的HttpCli 查看详情
volley框架
...联动。缺点不适合数据的上传与下载Get和Post请求接口的使用请求对象StringRequest返回结果类型不确 查看详情
如何使用 volley 下载一定数量的 JSON
】如何使用volley下载一定数量的JSON【英文标题】:HowtodownloadcertainamountofJSONusingvolley【发布时间】:2018-06-0501:57:09【问题描述】:有没有办法从JSON下载一定数量的行?我有一个MySQL数据库转换为JSON。JSON数据很大,超过1000行。显... 查看详情
volley2--volley的使用和架构
图片:1.其实RequestQueue里面有两个队列,一个我称为缓存队列mCacheQueue,一个称为网络队列mNetworkQueue如果请求要求加入缓存队列(例如我们给request设置一个属性ShouldCache,然后提供set方法来设置),将会试图从硬盘缓存中获取数据... 查看详情
如何在android开发中高效使用volley网络框架
如何在Android开发中高效使用Volley网络框架什么是VolleyVolley是Google在2013年推出的一个网络框架,他适合做短小的数据拉取和图像拉取与填充准备如果使用AndroidStudio作为开发环境1.下载Volley.jar2.将Volley.jar放在工程目录的libs文件... 查看详情
使用 Volley 和 OkHttp 时如何配置 Http 缓存?
】使用Volley和OkHttp时如何配置Http缓存?【英文标题】:HowtoconfiguretheHttpCachewhenusingVolleywithOkHttp?【发布时间】:2015-07-1312:51:58【问题描述】:我想尝试Volley与OkHttp的结合,但Volley缓存系统和OkHttp都依赖于HTTP规范中定义的HTTP缓存... 查看详情
Android Volley 如何使用 volley 在 POST 请求中发送用户名和密码以及其他参数
】AndroidVolley如何使用volley在POST请求中发送用户名和密码以及其他参数【英文标题】:AndroidVolleyHowtosendusernameandpasswordwithotherparametersinaPOSTrequestusingvolley【发布时间】:2016-11-1209:05:11【问题描述】:我有一个完美运行的curl命令curl-... 查看详情
android逆向修改android的apk安装包内的文件并重新打包(apktool_2.6.0.jar下载和使用|zipalign文件对齐|apksigner签名)(代码片段)
文章目录一、apktool_2.6.0.jar下载和使用二、使用zipalign工具进行对齐操作三、使用apksigner工具进行签名四、完整命令行输出一、apktool_2.6.0.jar下载和使用在https://ibotpeaches.github.io/Apktool/页面下载最新的apktool工具;下载完毕后,使用java... 查看详情
volley框架载入网络图片
Android开发中,载入网络server的图片是非经常常使用的。当然我们能够自己写server接口去实现,只是要做到server性能优越的话,开发起来比較麻烦点。所以本博客要介绍Volley框架进行网络图片载入的demo!Volley框架集成了AsyncHttpClie... 查看详情
使用 volley 库解析 JSON 数据的问题
】使用volley库解析JSON数据的问题【英文标题】:ProbleminparsingJSONdatausingvolleylibrary【发布时间】:2020-12-2411:13:25【问题描述】:这是一个从Internet获取JSON数据的简单程序。answerWithAsyncTask()是一个接口,确保所有下载的数据只有在... 查看详情
android怎么获取刚刚下载安装的apk的app名字和图片
从网上下载并安装了APK文件,想要获取它的文件名和默认的图片,该怎么拿到,并放入ListView列表中显示用intentfilter获取安装的apk包名,在BroadcastReceiver里面就可以拿到安装的包名和APP,等基本信息,再利用packageManager的功能就可能放... 查看详情
如何在android开发中高效使用volley网络框架
如何在Android开发中高效使用Volley网络框架什么是VolleyVolley是Google在2013年推出的一个网络框架,他适合做短小的数据拉取和图像拉取与填充准备如果使用AndroidStudio作为开发环境1.下载Volley.jar2.将Volley.jar放在工程目录的libs文件... 查看详情
Fragment、Volley 和 RecyclerView
...助我解决我的问题。我有3个选项卡的android应用程序,我使用片段,第一个选项卡是recyclerView列表,第二个选项卡是地图。问题出在选项卡1中,我需要使用volley将数据获取到选项卡1上的recyclerView,如 查看详情
volley框架的使用
...资料和视频之后,感觉用了Volley之后代码反而更简单了。使用起来也不难:StringRequest的用法:只要三步就可以了。当然首先你要先导入Volley的jar包或者Volley的项目。然后需要在Manifest文件中加入访问网络的权限<uses-permissionandro... 查看详情
volley网络框架完全解析(使用篇)
...xff1a;HttpURLConnection和HttpClient(Apache),我们在使用时一般都会对它们进行一系列的封装,但是这过程不免有些繁琐,所以,Google官方也考虑到了这点,在2013年GoogleI/O大会上就推出了一个新的网络请求框... 查看详情
Android volley 如何使用身份验证标头和正文中的 Json 对象发送请求
】Androidvolley如何使用身份验证标头和正文中的Json对象发送请求【英文标题】:AndroidvolleyHowtosendrequestwithbothauthentificationheadersandJsonobjectinbody【发布时间】:2013-11-2613:46:57【问题描述】:我需要通过volley发送一个http请求,其中包... 查看详情
使用 GSON 和 Volley 在 Android 上显示 JSON 数据
】使用GSON和Volley在Android上显示JSON数据【英文标题】:DisplayJSONdataonAndroidusingGSONandVolley【发布时间】:2017-06-3008:36:39【问题描述】:您好,我是android编程新手,正在努力学习它。我遵循this教程,它工作正常,但是我不知道如何... 查看详情
使用 Volley 和没有 HttpEntity 的工作 POST 多部分请求
】使用Volley和没有HttpEntity的工作POST多部分请求【英文标题】:WorkingPOSTMultipartRequestwithVolleyandwithoutHttpEntity【发布时间】:2015-11-2107:01:51【问题描述】:这不是一个真正的问题,但是,我想在这里分享一些我的工作代码,以供您... 查看详情