真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

靜默安裝android,靜默安裝失敗

Android靜默安裝與靜默卸載(系統(tǒng)應(yīng)用)

一.轟隆一聲靂響,我閃亮登場。

成都創(chuàng)新互聯(lián)企業(yè)建站,10多年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。

本篇基于已有系統(tǒng)證書(從Android設(shè)備廠家獲得)的情況下實現(xiàn)靜默安裝與靜默卸載,可分為三部分講解:將apk內(nèi)置為系統(tǒng)應(yīng)用,apk靜默安裝與apk靜默卸載。

1.將apk內(nèi)置為系統(tǒng)應(yīng)用。內(nèi)置的方法有共性,也有區(qū)別。基礎(chǔ)操作是共性,區(qū)別就在于Android4.4以上版本與Android4.4以下版本。

2.apk靜默安裝。

3.apk靜默卸載。

二.若您覺得本文對您有幫助,記得點個關(guān)注喲~

android如何實現(xiàn)靜默安裝哦

原理

靜默安裝、卸載的原理就是利用pm install命令來安裝apk,pm uninstall 來卸載apk.

智能安裝是利用android系統(tǒng)提供的無障礙服務(wù)AccessibilityService,來模擬用戶點擊,從而自動安裝.

//靜默安裝

private?void?installSlient()?{

String?cmd?=?"pm?install?-r?/mnt/sdcard/test.apk";

Process?process?=?null;

DataOutputStream?os?=?null;

BufferedReader?successResult?=?null;

BufferedReader?errorResult?=?null;

StringBuilder?successMsg?=?null;

StringBuilder?errorMsg?=?null;

try?{

//靜默安裝需要root權(quán)限

process?=?Runtime.getRuntime().exec("su");

os?=?new?DataOutputStream(process.getOutputStream());

os.write(cmd.getBytes());

os.writeBytes("\n");

os.writeBytes("exit\n");

os.flush();

//執(zhí)行命令

process.waitFor();

//獲取返回結(jié)果

successMsg?=?new?StringBuilder();

errorMsg?=?new?StringBuilder();

successResult?=?new?BufferedReader(new?InputStreamReader(process.getInputStream()));

errorResult?=?new?BufferedReader(new?InputStreamReader(process.getErrorStream()));

String?s;

while?((s?=?successResult.readLine())?!=?null)?{

successMsg.append(s);

}

while?((s?=?errorResult.readLine())?!=?null)?{

errorMsg.append(s);

}

}?catch?(Exception?e)?{

e.printStackTrace();

}?finally?{

try?{

if?(os?!=?null)?{

os.close();

}

if?(process?!=?null)?{

process.destroy();

}

if?(successResult?!=?null)?{

successResult.close();

}

if?(errorResult?!=?null)?{

errorResult.close();

}

}?catch?(Exception?e)?{

e.printStackTrace();

}

}

//顯示結(jié)果

tvTest.setText("成功消息:"?+?successMsg.toString()?+?"\n"?+?"錯誤消息:?"?+?errorMsg.toString());

}

android在root權(quán)限下實現(xiàn)apk的靜默卸載,靜默安裝,重啟

1.靜默卸載實現(xiàn):

/**

* 靜默卸載app

*

* @param context

* @param packageName app的包名

* @throws IOException

* @throws InterruptedException

*/

public static void uninstallApp(Context context, String packageName) throws IOException, InterruptedException {

? ? ListPackageInfo packageInfos = context.getPackageManager().getInstalledPackages(PackageManager.GET_ACTIVITIES);

? ? for (PackageInfo packageInfo1 : packageInfos) {

? ? ? ? if (packageName.equals(packageInfo1.packageName)) {

? ? ? ? ? ? String suPath = "/system/xbin/su";

? ? ? ? ? ? File file = new File(suPath);

? ? ? ? ? ? if (!file.exists()) {

? ? ? ? ? ? ? ? suPath = "/system/bin/su";

? ? ? ? ? ? }

? ? ? ? ? ? Process process = Runtime.getRuntime().exec(suPath);

? ? ? ? ? ? String cmd = "pm uninstall " + packageName + "\n" + "exit\n";

? ? ? ? ? ? process.getOutputStream().write(cmd.getBytes());

? ? ? ? ? ? process.waitFor();

? ? ? ? ? ? break;

? ? ? ? }

? ? }

}

2.靜默安裝實現(xiàn):

/**

* 靜默安裝app

*

* @param filePath

* @throws IOException

* @throws InterruptedException

*/

public static void installApp(String filePath) throws IOException, InterruptedException {

? ? String suPath = "/system/xbin/su";

? ? File file = new File(suPath);

? ? if (!file.exists()) {

? ? ? ? suPath = "/system/bin/su";

? ? }

? ? Process process = Runtime.getRuntime().exec(suPath);

? ? String cmd = "pm install -r " + filePath + "\n" + "exit\n";

? ? process.getOutputStream().write(cmd.getBytes());

? ? process.waitFor();

}

最后加上重啟命令:

/**

* 重啟系統(tǒng)

*

* @return

*/

public static boolean reboot() {

? ? try {

? ? ? ? String suPath = "/system/xbin/su";

? ? ? ? File file = new File(suPath);

? ? ? ? if (!file.exists()) {

? ? ? ? ? ? suPath = "/system/bin/su";

? ? ? ? }

? ? ? ? Process process = Runtime.getRuntime().exec(suPath);

? ? ? ? String cmd = "reboot\nexit\n";

? ? ? ? process.getOutputStream().write(cmd.getBytes());

? ? ? ? return true;

? ? } catch (IOException error) {

? ? ? ? return false;

? ? }

}

注意卸載和安裝需要在子線程中執(zhí)行;如果單純關(guān)機則用“reboot -p”命令。

android沒有root的情況下怎么實現(xiàn)靜默安裝

手機ROOT方法:\x0d\x0a1、下載安裝KingRoot 電腦版\x0d\x0a2、用USB數(shù)據(jù)線連接手機Root過程中,保持手機連接PC\x0d\x0a3、按提示開始Root操作整個過程需要5-10分鐘\x0d\x0a4、Root成功!\x0d\x0a\x0d\x0a注:手機ROOT之后是不在保修條約里面的,需要解除ROOT權(quán)限即可。

Android 靜默安裝和自啟動(1、Root環(huán)境下)

各種以android硬件平臺為基礎(chǔ)的【公示屏】、【廣告屏】等等,雖然很少有升級,但是不可避免的會遇到,而此類APP的使用場景,一般沒人會去幫助你版本更新,點擊安裝,故而需要:靜默安裝。

1、確認安裝包是否存在,并可讀寫

2、隱示啟動:action和data的schema來控制彈出安裝工具類APP,然后點擊安裝...

3、升級完:BootReceiver 監(jiān)聽到Intent.ACTION_PACKAGE_REPLACED,然后自啟動

靜默安裝apk接口,無需開放root,也無需system權(quán)限。

Android靜默安裝

個人了解到的靜默安裝的方式有以下4種:

我看了一些第三方的應(yīng)用市場,一般在設(shè)置下都會有前兩種靜默安裝的方式可供選擇,而后兩種靜默安裝的方式主要是廠商自己的應(yīng)用市場使用。

如果在7.0的系統(tǒng)上使用第三種靜默安裝的方式會出現(xiàn)以下錯誤:

參考:

Android7.0的靜默安裝失敗問題研究

Android N 靜默安裝和卸載

主要步驟如下:

我試了以上兩篇文章的介紹的方法,還是失敗,提示Failure [null],不知道怎么破了,可能是廠商的定制問題吧。。。還在思考中。。。


文章標題:靜默安裝android,靜默安裝失敗
本文網(wǎng)址:http://weahome.cn/article/hoedpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部