Android OTA升级
Android端编译
$make otapackage
App升级
import android.os.RecoverySystem
@Override
public void onProgress(int progress) {
Log.i(MYTAG, "verify progress: " + progress);
verifyProgress = progress;
Message msg = Message.obtain();
msg.what = MSG_VERIFY_PACKAGE;
msg.arg1 = progress;
mMsgHandler.sendMessage(msg);
}
private void doOtaUpdate() {
new Thread() {
@Override
public void run() {
Log.i(MYTAG, "Start update .............");
File srcFile = otaFile;
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "MyApp");
try {
wl.acquire();//升级保持亮屏状态
RecoverySystem.verifyPackage(otaFile, FullscreenActivity.this, null);
if (verifyProgress < 100) {
Log.i(MYTAG, "Verify package failed!");
mMsgHandler.sendEmptyMessage(MSG_VERIFY_FAIL);
} else {
Log.i(MYTAG, "Verify package ok!");
File file = new File("/extsd/" + OTA_ZIP_DIR + otaFile.getName());
mMsgHandler.sendEmptyMessage(MSG_INSTALL_PACKAGE);
RecoverySystem.installPackage(FullscreenActivity.this, file);
}
} catch (Exception e) {
Log.e(MYTAG, e.getMessage(), e);
} finally {
wl.release();
}
}
}.start();
}