其實看着覺着好像不知道如何實現其實就是調用系統的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