<Android> OTA升级

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();
}

猜你喜欢

转载自blog.csdn.net/Meta_Cpp/article/details/80776798