国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android程序靜默安裝安裝后重新啟動APP的方法

2019-12-12 01:14:46
字體:
供稿:網(wǎng)友

 一:需求簡介

  之前boss提出一個需求,運行在廣告機上的app,需要完成自動升級的功能,廣告機是非觸摸屏的,不能通過手動點擊,所以app必須做到自動下載,自動安裝升級,并且安裝完成后,app還要繼續(xù)運行,最好不借助其它app來實現(xiàn)以上功能。

 二:實現(xiàn)思路

  實現(xiàn)這個功能第一個想到的方法就是靜默安裝,由于廣告機已經(jīng)root,靜默安裝比較順利,安裝app的主要代碼如下:

/*  @pararm apkPath 等待安裝的app全路徑,如:/sdcard/app/app.apk**/private static boolean clientInstall(String apkPath) {    PrintWriter PrintWriter = null;    Process process = null;    try {      process = Runtime.getRuntime().exec("su");      PrintWriter = new PrintWriter(process.getOutputStream());      PrintWriter.println("chmod 777 " + apkPath);      PrintWriter          .println("export LD_LIBRARY_PATH=/vendor/lib:/system/lib");      PrintWriter.println("pm install -r " + apkPath);      // PrintWriter.println("exit");      PrintWriter.flush();      PrintWriter.close();      int value = process.waitFor();      Logger.e("靜默安裝返回值:"+value);      return returnResult(value);    } catch (Exception e) {      e.printStackTrace();      Logger.e("安裝apk出現(xiàn)異常");    } finally {      if (process != null) {        process.destroy();      }    }    return false;  }

  以上方法能順利安裝,但不能實現(xiàn)軟件安裝完成后,軟件還能繼續(xù)運行,因為安裝后,當前app的進程已經(jīng)被kill了。無法實現(xiàn)boss提出的,安裝后軟件正常運行的需求,此時如果我們還想著用android來實現(xiàn)這個需求,是無法實現(xiàn)的,因為app進程被kill了,所以需要借助第三方來啟動我們的app,我第一時間想到的就是linux執(zhí)行am start命令,但這個命令不能立即執(zhí)行,所以需要sleep來實現(xiàn)這個需求,命令格式如下 sleep 時間(單位秒),am start -n ,完整代碼如下:

private void execLinuxCommand(){     String cmd= "sleep 120; am start -n 包名/包名.第一個Activity的名稱";    //Runtime對象    Runtime runtime = Runtime.getRuntime();    try {      Process localProcess = runtime.exec("su");      OutputStream localOutputStream = localProcess.getOutputStream();      DataOutputStream localDataOutputStream = new DataOutputStream(localOutputStream);      localDataOutputStream.writeBytes(cmd);      localDataOutputStream.flush();      Logger.e("設備準備重啟");    } catch (IOException e) {      Logger.i(TAG+"strLine:"+e.getMessage());      e.printStackTrace();    }  }

   涉及到的權限:

<uses-permission android:name="android.permission.INSTALL_PACKAGES" />

   注意:不是所有root過的設備,都能執(zhí)行Process localProcess = runtime.exec("su");這個需要硬件支持,這個坑我遇到過。通過以上兩個方法就能實現(xiàn)靜默安裝,安裝完成后,app自動需行的需求。

總結

以上所述是小編給大家介紹的Android程序靜默安裝安裝后重新啟動APP的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 连江县| 周宁县| 西和县| 崇明县| 民乐县| 卢氏县| 金溪县| 吉木萨尔县| 大冶市| 龙游县| 长葛市| 剑川县| 金沙县| 澄迈县| 修武县| 油尖旺区| 青海省| 盐边县| 霍邱县| 宜君县| 滕州市| 濮阳县| 盐边县| 南川市| 武山县| 凤庆县| 印江| 夏津县| 青铜峡市| 敦化市| 东城区| 泾阳县| 武汉市| 中超| 三原县| 手游| 肥乡县| 肥乡县| 手游| 呼图壁县| 赤城县|