在系统安装的的底层常规应用中,是通过PackageInstaller来识别程序安装的intent来执行安装:
package cn.com;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
public class InstallApk extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file://"
+ "/sdcard/solitaire.apk"),
"application/vnd.android.package-archive");
startActivity(intent);
}
}
PackageInstaller服务将会在内部匹配MIME类型为application/vnd.android.package-archive的intent,要说明的是setDataAndType的参数第一个为:URI,其实URI内部的String对应为file://加上常规路径,比如:file:///sdcard/test.apk,当然其他的Uri构造方法还可以Uri.fromFile(new File(mFileFullPath)).
注意:在这里特地交代下MIME类型的小知识点:
在把输出结果传送到浏览器上的时候,浏览器必须启动应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Type header中.
假设你要传送一个Microsoft Excel文件到客户端。那么这时的MIME类型就是"application/vnd.ms-excel"。在大多数实际情况中,这个文件然后将传送给Execl来处理(假设我们设定Excel为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的ContentType属性.
最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML 文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型.
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类,
常见的MIME类型
超文本标记语言文本 .html,.html text/html
普通文本 .txt text/plain
RTF文本 .rtf application/rtf
GIF图形 .gif image/gif
JPEG图形 .ipeg,.jpg image/jpeg
au声音文件 .au audio/basic
MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
MPEG文件 .mpg,.mpeg video/mpeg
AVI文件 .avi video/x-msvideo
GZIP文件 .gz application/x-gzip
TAR文件 .tar application/x-tar
分享到:
相关推荐
首先,获取APK文件的路径,然后使用`Intent`和`PackageInstaller`来完成安装过程。以下是一个示例函数: ```java public void installApk(Context context, String apkFilePath) { if (Build.VERSION.SDK_INT >=...
在Android平台上,实现从网络下载APK文件并自动执行安装是一个常见的需求,尤其在更新应用或者分发非市场应用时。这个过程涉及到多个步骤,包括网络请求、文件下载、权限处理以及安全检查。下面我们将详细讲解如何...
在Android平台上,有时候...总的来说,Android中下载并安装APK文件涉及到网络请求、文件操作、权限管理和Intent启动安装流程等多方面知识。理解并掌握这些技术点对于开发涉及动态下载和安装应用的Android应用至关重要。
在Android应用开发中,有时需要通过代码来安装APK文件,比如进行自动化测试或更新应用程序。本文将详细解析如何在Android设备上通过编程方式安装APK,并针对不同Android版本介绍相应的实现方法。 首先,让我们回顾...
根据提供的信息,“Unity中安装APK”这一主题涵盖了如何在Unity环境中通过编程方式来触发APK文件的安装流程。接下来,我们将详细探讨这一过程中的关键技术点。 ### Unity环境下的APK安装原理 在Unity中安装APK主要...
Android 中使用 Intent 打开各种文件类型 ...在实际应用中,我们可以根据需要打开的文件类型,编写对应的 Intent 代码,并使用 startActivity 方法启动该 Intent,从而实现打开各种文件类型的功能。
在Android系统中,通常我们通过点击APK文件来安装应用,但有时可能需要在一个APK文件内部触发安装另一个或多个APK文件的操作。这在开发过程中可能会遇到,比如需要组合多个功能模块,或者进行更新时分包处理。本文将...
在Android平台上,更新、下载、安装以及打开APK文件是应用程序生命周期中的常见操作。下面将详细阐述这些过程及其相关的知识点。 一、Android APK文件 APK(Android Package)是Android系统中应用程序的安装包,...
这段代码首先创建一个Intent,指定ACTION_VIEW操作,并设置数据类型为APK文件。`apkFilePath`是APK文件的本地路径。然后通过`startActivityForResult`启动安装流程,`INSTALL_REQUEST_CODE`是你自定义的请求码,用于...
### 获取手机中已安装的APK文件信息 在Android开发中,经常需要获取手机中已安装的应用信息,例如为了提供给用户一个应用列表或者检查某些特定应用是否已经安装等场景。下面将详细介绍如何通过Android系统提供的`...
在实际应用中,你需要确保APK文件的安全性,避免安装未知来源的软件。 6. **调试与部署**:在开发过程中,通常会使用ADB(Android Debug Bridge)来推送和安装APK,但这种方式需要连接电脑。而自动安装apk的DEMO则...
在Android系统中,安装本地APK(Android Package)是指通过编程方式或手动操作将一个APK文件添加到设备上,使其成为一个可运行的应用程序。这个过程涉及到一系列的技术点,包括权限管理、签名验证、安装流程等。下面...
Android安装apk文件并适配Android 7.0详解是指在Android系统中安装apk文件并使其适配Android 7.0系统的过程。这是一个重要的知识点,涉及到Android系统的安装机制和适配问题。 在Android系统中,安装apk文件需要...
当需要对已安装的应用进行更新时,开发者通常会提供一个新的APK文件供用户下载。本篇文章将详细介绍如何在Android应用中实现APK的自动更新安装功能。 首先,我们需要理解Android系统如何处理APK的安装过程。当用户...
2. **创建安装意图(Intent)**:创建一个`Intent`,设置其`ACTION_VIEW`动作,`.setDataAndType()`方法用于设置APK文件的URI和MIME类型。由于我们要使用FileProvider,所以URI应该是`FileProvider.getUriForFile()`...
通过输入APK文件的地址,用户可以指定要安装的应用,而无需通过传统的通过Google Play或其他应用市场进行下载。这种独立安装的方式在调试、测试或者安装非市场应用时非常有用。 在Android系统中,通常通过点击APK...
这段代码之所以可能失败,原因有二:一是可能因为PDF阅读器应用程序没有权限访问其他APK中的asset资源文件;二是文件路径可能设置不正确。为了解决这个问题,可以尝试使用绝对路径或者确保目标应用程序具有必要的...
刚开始网上都说android不能通过蓝牙发送APK,系统做了限制。其实这只是针对普通用户而言,对开发者来说其实几行代码就能...通过intent调用。几行代码解决蓝牙连接、蓝牙发送文件。因为系统自带蓝牙发送文件的apk的。
4. **自动安装APK**:在下载完成后,为了使用户能够轻松地安装APK,开发者可以编写代码自动调用`PackageInstaller`或`Intent`进行安装。例如,创建一个`ACTION_VIEW`类型的意图,设置数据字段为下载完成的APK文件...
这可以通过FileInputStream或AssetManager完成,将APK文件视为一个普通的二进制文件。 2. **解析APK**:然后,使用ZipFile或JarFile类解析APK,提取AndroidManifest.xml文件的内容。XMLPullParser可以帮助我们解析...