代码中如何通过intent安装apk文件

yinsui 2011-06-30

在系统安装的的底层常规应用中,是通过PackageInstaller来识别程序安装的intent来执行安装:

Java代码

packagecn.com;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

publicclassInstallApkextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Intentintent=newIntent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.parse("file://"

+"/sdcard/solitaire.apk"),

"application/vnd.android.package-archive");

startActivity(intent);

}

}

packagecn.com;

importandroid.app.Activity;

importandroid.content.Intent;

importandroid.net.Uri;

importandroid.os.Bundle;

publicclassInstallApkextendsActivity{

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Intentintent=newIntent(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(newFile(mFileFullPath)).

注意:在这里特地交代下MIME类型的小知识点:

在把输出结果传送到浏览器上的时候,浏览器必须启动应用程序来处理这个输出文档。这可以通过多种类型MIME(多功能网际邮件扩充协议)来完成。在HTTP中,MIME类型被定义在Content-Typeheader中.

假设你要传送一个MicrosoftExcel文件到客户端。那么这时的MIME类型就是"application/vnd.ms-excel"。在大多数实际情况中,这个文件然后将传送给Execl来处理(假设我们设定Excel为处理特殊MIME类型的应用程序)。在ASP中,设定MIME类型的方法是通过Response对象的ContentType属性.

最早的HTTP协议中,并没有附加的数据类型信息,所有传送的数据都被客户程序解释为超文本标记语言HTML文档,而为了支持多媒体数据类型,HTTP协议中就使用了附加在文档之前的MIME数据类型信息来标识数据类型.

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类,

常见的MIME类型

超文本标记语言文本.html,.htmltext/html

普通文本.txttext/plain

RTF文本.rtfapplication/rtf

GIF图形.gifimage/gif

JPEG图形.ipeg,.jpgimage/jpeg

au声音文件.auaudio/basic

MIDI音乐文件mid,.midiaudio/midi,audio/x-midi

RealAudio音乐文件.ra,.ramaudio/x-pn-realaudio

MPEG文件.mpg,.mpegvideo/mpeg

AVI文件.avivideo/x-msvideo

GZIP文件.gzapplication/x-gzip

TAR文件.tarapplication/x-tar

相关推荐