private boolean silentInstall(String fileName) {
String apkAbsolutePath = fileName;// StorageUtils.getAPKDownloadDir() +
// File.separator + fileName;
String[] args = {
"pm", "install", "-r", apkAbsolutePath
};
String result = "";
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = null;
InputStream inIs = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
process = processBuilder.start();
baos.write('/');
inIs = process.getInputStream();
while ((read = inIs.read()) != -1) {
baos.write(read);
}
byte[] data = baos.toByteArray();
result = new String(data);
baos.close();
} catch (IOException e) {
GioneeLog.debug(TAG, "silentInstall failed0");
e.printStackTrace();
} catch (Exception e) {
GioneeLog.debug(TAG, "silentInstall failed1");
e.printStackTrace();
} finally {
try {
if (inIs != null) {
inIs.close();
}
} catch (IOException e) {
GioneeLog.debug(TAG, "silentInstall failed2");
e.printStackTrace();
}
if (process != null) {
process.destroy();
}
}
if (result.contains("Success")) {
GioneeLog.debug(TAG, "silentInstall success");
applyLockScreen();
return true;
}
GioneeLog.debug(TAG, "silentInstall failed3");
return false;
}
/**
* 静默安装
*/
public void installApkDefaul(Context context, String filePath) {
String packageName = "com.example.testparceable";
try {
File file = new File(filePath);
int installFlags = 0;
boolean isExist = file.exists();
Log.d(TAG, "jing mo an zhuang:" + packageName + ",fileName:" + filePath + " isExist="
+ isExist);
if (!isExist)
return;
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
// if (FALSE()) {
// installFlags |= PackageManager.INSTALL_EXTERNAL;
// }
PackageManager pm = context.getPackageManager();
// try { try {
// IPackageInstallObserver observer = new MyPakcageInstallObserver(
// context, APPName, appId, fileName, packageName, type_name);
Log.i(TAG, "installFlags:" + installFlags + "packagename:"
+ packageName);
pm.installPackage(Uri.fromFile(file), null, installFlags,
packageName);
Log.i(TAG, "installApkDefaul success");
applyLockScreen();
} catch (Exception e) {
// ((MarketApplication) context).setApp_detail_status(appId,
// MarketApplication.APP_STATUS_NOTEXIT);
Log.i(TAG, "installApkDefaul exception " + e);
}
}
String apkAbsolutePath = fileName;// StorageUtils.getAPKDownloadDir() +
// File.separator + fileName;
String[] args = {
"pm", "install", "-r", apkAbsolutePath
};
String result = "";
ProcessBuilder processBuilder = new ProcessBuilder(args);
Process process = null;
InputStream inIs = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
int read = -1;
process = processBuilder.start();
baos.write('/');
inIs = process.getInputStream();
while ((read = inIs.read()) != -1) {
baos.write(read);
}
byte[] data = baos.toByteArray();
result = new String(data);
baos.close();
} catch (IOException e) {
GioneeLog.debug(TAG, "silentInstall failed0");
e.printStackTrace();
} catch (Exception e) {
GioneeLog.debug(TAG, "silentInstall failed1");
e.printStackTrace();
} finally {
try {
if (inIs != null) {
inIs.close();
}
} catch (IOException e) {
GioneeLog.debug(TAG, "silentInstall failed2");
e.printStackTrace();
}
if (process != null) {
process.destroy();
}
}
if (result.contains("Success")) {
GioneeLog.debug(TAG, "silentInstall success");
applyLockScreen();
return true;
}
GioneeLog.debug(TAG, "silentInstall failed3");
return false;
}
/**
* 静默安装
*/
public void installApkDefaul(Context context, String filePath) {
String packageName = "com.example.testparceable";
try {
File file = new File(filePath);
int installFlags = 0;
boolean isExist = file.exists();
Log.d(TAG, "jing mo an zhuang:" + packageName + ",fileName:" + filePath + " isExist="
+ isExist);
if (!isExist)
return;
installFlags |= PackageManager.INSTALL_REPLACE_EXISTING;
// if (FALSE()) {
// installFlags |= PackageManager.INSTALL_EXTERNAL;
// }
PackageManager pm = context.getPackageManager();
// try { try {
// IPackageInstallObserver observer = new MyPakcageInstallObserver(
// context, APPName, appId, fileName, packageName, type_name);
Log.i(TAG, "installFlags:" + installFlags + "packagename:"
+ packageName);
pm.installPackage(Uri.fromFile(file), null, installFlags,
packageName);
Log.i(TAG, "installApkDefaul success");
applyLockScreen();
} catch (Exception e) {
// ((MarketApplication) context).setApp_detail_status(appId,
// MarketApplication.APP_STATUS_NOTEXIT);
Log.i(TAG, "installApkDefaul exception " + e);
}
}