更新软件时要用到将软件下载到SD卡并主动弹出安装界面,就想安卓市场一样,下面总结一个简单的实训过程:
1、检测某个应用是否已经安装了:
public boolean isPkgInstalled(String packageName) {
PackageManager pm = getPackageManager();
try {
pm.getPackageInfo(packageName, 0);
} catch (Exception e) {
return false;
}
return true;
}
只需要一个包名就可以了。如果是更新软件本身就没必要检测安装,只检测版本号就可以了。
2、判断sd卡是否存在:
private boolean isSDcard() {
if (android.os.Environment.getExternalStorageState().equals(
android.os.Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
}
如果不存在就没必要下载了。
3、下载并保存到sd卡:
public void down_file(String url) {
try {
String path = "/sdcard/download/";
filename = url.substring(url.lastIndexOf("/") + 1);
URL myURL = new URL(url);
URLConnection conn = myURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
fileSize = conn.getContentLength();
if (fileSize <= 0)
throw new RuntimeException(getString(R.string.download_unknow_size));
if (is == null)
throw new RuntimeException("stream is null");
FileOutputStream fos = new FileOutputStream(path + filename);
byte buf[] = new byte[1024];
downLoadFileSize = 0;
sendMsg(0);
do {
int numread = is.read(buf);
if (numread == -1) {
break;
}
fos.write(buf, 0, numread);
downLoadFileSize += numread;
sendMsg(1);
} while (true);
sendMsg(2);
is.close();
} catch (Exception ex) {
Log.e("tag", "error: " + ex.getMessage(), ex);
}
}
4、等下载完成了就要启动安装界面:
private void installAPK() {
String fileName = getSDPath() +"/download/"+filename;
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");
startActivity(intent);
}
其中的sendMsg()方法是用于更新handler的。
分享到:
相关推荐
通过这样的设计,我们可以构建一个实用的系统,实现从互联网下载文件并保存到本地SD卡,为物联网应用提供了便利的数据获取和存储方案。这个项目不仅锻炼了开发者对RTOS的理解,还涵盖了嵌入式系统中的网络通信、存储...
SD卡,全称为Secure Digital Memory Card,是一种广泛应用于便携式设备的数据存储媒介。本压缩包包含关于SD卡的重要中文资料,包括“SD卡中文数据手册”、“SD卡读写规范”以及“SD卡接口规范”,旨在帮助用户深入...
本教程主要介绍如何在Android应用中实现网络文件的下载并保存到SD卡。 1. **Android权限设置** 在AndroidManifest.xml文件中,你需要添加写入外部存储的权限: ```xml ``` 如果你的应用目标API等级高于23,还...
在Android操作系统中,将应用程序安装到SD卡上是一种节省手机内置存储空间的有效方法。这个过程涉及到Android系统的存储管理机制,以及一些系统级别的设置。本文将详细介绍如何在Android设备上实现软件向SD卡的安装...
把安卓软件安装到SD卡的好帮手.在设置里有个首选安装位置
在本文中,我们将深入探讨如何使用STM32F103单片机通过串口接收外部设备发送的数据,并利用DMA(直接内存访问)技术将其高效地存储到SD卡上。这个过程涉及到微控制器的串行通信、DMA机制以及与SD卡的交互,这些都是...
最后,"软2件移到SD卡link2sd软件设置教程.wps"提供了关于如何配置Link2sd的详细步骤,包括设置自动移动新安装的应用和定期清理缓存等实用功能。这样,即使新下载的应用也能自动优化存储分配,避免内部存储空间被...
"文件转移SD卡工具"就是专为了解决这个问题而设计的,它可以帮助用户将安装在手机内存中的应用程序轻松迁移到外部SD卡上,以此释放宝贵的内存资源,提升手机的运行效率。 该工具的核心功能在于其能够智能识别并处理...
本资料合集包含了SD卡从V1.0到V2.0的协议、读写规范以及接口规范等详细信息,对于理解其工作原理和技术细节非常有帮助。 1. **SD卡协议**:SD卡(Secure Digital Memory Card)是一种非易失性存储设备,遵循特定的...
在提供的`demo`压缩包文件中,可能包含了一个演示如何下载并保存图片到SD卡的Android应用示例项目,你可以通过解压并导入Android Studio来查看和运行代码。通过分析和学习这个示例,可以更深入地理解这个过程。
SD卡(Secure Digital Card)是一种非易失性存储设备,广泛应用于移动设备、数码相机、个人计算机和其他便携式电子设备中。SD卡程序通常包括应用程序和与之相关的驱动程序,这些组件共同确保设备能够正确识别和管理...
本教程将详细介绍如何基于STM32芯片实现一个BOOTLOADER程序,利用SD卡进行固件更新,并移植FATFS文件系统来处理升级文件。 1. **BOOTLOADER基础** BOOTLOADER是系统启动时运行的第一段代码,它的主要任务是初始化...
SD卡驱动程序是操作系统与硬件设备之间的重要桥梁,特别是在Linux这样的开源操作系统中,理解并编写SD卡驱动对于系统开发者和嵌入式工程师至关重要。SD卡(Secure Digital Card)是一种广泛应用于移动设备、数码相机...
标题中的“SD卡在单片机的应用”是指将Secure Digital(SD)卡作为一种存储设备,用于在微控制器或单片机系统中存储数据。SD卡因其容量大、接口简单、成本低等特点,常被用于嵌入式系统,尤其是那些需要大量数据存储...
SD卡模块应用是一个广泛涉及硬件设计、嵌入式系统、数据存储和移动设备技术的领域。SD卡(Secure Digital Card)是一种便携式存储设备,广泛应用于数码相机、智能手机、平板电脑和其他电子设备中。本篇文章将深入...
在Android应用开发中,批量下载网络图片并保存到SD卡是一项常见的需求,特别是在构建图片浏览类应用时。本文将详细讲解如何实现这一功能,并展示如何将下载的图片以ViewPager的形式展示给用户。 首先,我们需要理解...
本篇文章将详细介绍如何在Unity应用中获取外置SD卡的路径,并结合PicoVR SDK,实现适用于VR场景的打包和安装。 首先,我们要明确在Android平台上,外部存储通常指的是SD卡或者是设备提供的可移除存储空间。在...
1. 下载与安装:首先,从可靠来源下载适用于你的操作系统的SD卡序列号修改工具。确保软件是安全无病毒的,并根据提示进行安装。 2. 连接SD卡:将SD卡插入读卡器,然后将其连接到电脑。确保电脑正确识别到SD卡。 3...
DELL服务器通过sd卡安装系统(iDRAC-Use-vFlash-) 本文档主要介绍了如何使用iDRAC 6的vFlash功能将操作系统安装到DELL服务器上。下面将详细介绍相关知识点: 一、iDRAC 6 vFlash功能简介 iDRAC 6是DELL服务器的一...