Sometimes, for kiosk terminal, it need decide when to install apk. So for apk in TMS, need configure prompt installing mode, then customer apk can receive download finishing broadcast, and send notice to wizarview agent to install apk. Wizarview agent version should be greator than 5.3.39.
Receive download
Receive the broadcast, action:android.intent.action.TMS_DOWNLOADED extra value name: apk_notify_info type: JSONArray, for example: [{"appId":19068,"newVersion":1,"newVersionName":"1.0","packageName":"com.liqi.myapp20210324"}]
<receiver
android:name=".receiver.ApkDownloadedReceiver">
<intent-filter>
<action android:name="android.intent.action.TMS_DOWNLOADED" />
</intent-filter>
</receiver>
- Extends class of the BroadcastReceiver
String apk_notify_info = intent.getStringExtra("apk_notify_info");
Notice to install
Send broadcast to install, action: android.intent.action.TMS_INSTALL extra value name: apk_start_install_notify_info type: JSONArray, for example: [{"appId":19068,"newVersion":1,"newVersionName":"1.0","packageName":"com.liqi.myapp20210324"}]
Intent intent = new Intent();
intent.putExtra("apk_start_install_notify_info", JSON.toJSONString(apkNotifyInfos));
intent.setAction("android.intent.action.TMS_INSTALL");
context.sendBroadcast(intent);
ApkNotifyInfo class
class ApkNotifyInfo {
private int appId;
private String packageName;
private long newVersion;
private String newVersionName;
public ApkNotifyInfo() {
}
public ApkNotifyInfo(int appId, String packageName, long newVersion, String newVersionName) {
this.appId = appId;
this.packageName = packageName;
this.newVersion = newVersion;
this.newVersionName = newVersionName;
}
public int getAppId() {
return appId;
}
public void setAppId(int appId) {
this.appId = appId;
}
public String getPackageName() {
return packageName;
}
public void setPackageName(String packageName) {
this.packageName = packageName;
}
public long getNewVersion() {
return newVersion;
}
public void setNewVersion(long newVersion) {
this.newVersion = newVersion;
}
public String getNewVersionName() {
return newVersionName;
}
public void setNewVersionName(String newVersionName) {
this.newVersionName = newVersionName;
}
}