其实看着觉着好像不知道如何实现其实就是调用系统的intent来完成安装java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
public
void
onSuccess(File t) {
// 下载成功的条件下,替换应用程序
// TODO 这里的东西不是很理解
// 下载成功 替换安装 应用程序.
// <action
// android:name="android.intent.action.VIEW"
// />
// <category
// android:name="android.intent.category.DEFAULT"
// />
// <data android:scheme="content" />
// <data android:scheme="file" />
// <data
// android:mimeType="application/vnd.android.package-archive"
// />
Intent intent =
new
Intent();
intent.setAction(
"android.intent.action.VIEW"
);
intent.addCategory(
"android.intent.category.DEFAULT"
);
intent.setDataAndType(Uri.fromFile(t),
"application/vnd.android.package-archive"
);
Log.i(TAG,
"成功进行下载"
);
startActivity(intent);
super
.onSuccess(t);
}
|
这段代码是在断点下载功能中实现的,也就是在成功下载了应用的状况下,安装更新文件主要是须要掌握如何去调用这个Intent也就是如何setAction和addCategory和setDataAndType。而这些东西能够查看源代码获取到。那么这里就有一个很关键的问题了,怎么经过源代码找到须要的intent设置信息呢?android
经过查找源代码中的apps中,发现有一个packageInstaller,看名字便知道这是一个安装应用的系统应用,那么如何调用它呢?直接查看他的清单文件能够看到以下信息:app
1
2
3
4
5
6
7
8
9
10
11
|
<activity android:name=
".PackageInstallerActivity"
android:configChanges=
"orientation|keyboardHidden"
android:theme=
"@style/TallTitleBarTheme"
>
<intent-filter>
<action android:name=
"android.intent.action.VIEW"
/>
<category android:name=
"android.intent.category.DEFAULT"
/>
<data android:scheme=
"content"
/>
<data android:scheme=
"file"
/>
<data android:mimeType=
"application/vnd.android.package-archive"
/>
</intent-filter>
</activity>
|
那么就能够知道具体的调用方法了,将相应的参数设置就能够安装本身的应用了。spa
欢迎你们留言,这个是我曾经的一些笔记,如今想在网上记录下来,曾经的点点滴滴,固然确定会有一些纰漏,还望指出code