/**
* 下载文件
* @param url
*/
private void downFile(final String url) {
mProgressDialog = new ProgressDialog(activity);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mProgressDialog.setMessage("请等待...");
mProgressDialog.show();
new Thread() {
@Override
public void run() {
DefaultHttpClient client = new DefaultHttpClient();
HttpGet get = new HttpGet(url);
HttpResponse response;
try {
response = client.execute(get);
HttpEntity entity = response.getEntity();
long length = entity.getContentLength();
InputStream is = entity.getContent();
FileOutputStream fileOutputStream = null;
if (is != null) {
File file = new File(PATH + software + ".apk");
fileOutputStream = new FileOutputStream(file);
byte[] buf = new byte[1024];
int ch = -1;
int count = 0;
while ((ch = is.read(buf)) != -1) {
// baos.write(buf, 0, ch);
fileOutputStream.write(buf, 0, ch);
count += ch;
if (length > 0) {
}
}
}
fileOutputStream.flush();
if (fileOutputStream != null) {
fileOutputStream.close();
}
update();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
private void update() {
//Log.v("update", "update");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(
Uri.fromFile(new File("file://" + PATH + software + ".apk")),
"application/vnd.android.package-archive");
activity.startActivity(intent);
}
//----------------获取尚未安装的apk的信息------------------------
/**
* 获取未安装的APK信息
*
* @param context
* @param archiveFilePath
* APK文件的路径。如:/sdcard/download/XX.apk
*/
public static PackageInfo getApkInfo(Context context, String archiveFilePath) {
PackageManager pm = context.getPackageManager();
PackageInfo apkInfo = pm.getPackageArchiveInfo(archiveFilePath,
PackageManager.GET_META_DATA);
return apkInfo;
}
//----------遍历,看某个程序是否已经安装--------------------------
/**
* 遍历程序列表,判断是否安装安全支付服务
*
* @return
*/
public boolean isMobile_spExist(Strin packageName) {
PackageManager manager = mContext.getPackageManager();
List<PackageInfo> pkgList = manager.getInstalledPackages(0);
for (int i = 0; i < pkgList.size(); i++) {
PackageInfo pI = pkgList.get(i);
if (pI.packageName.equalsIgnoreCase(packageName))
return true;
}
return false;
}
//----------获取某个路径的权限-----------------------------------
/**
* 获取权限
*
* @param permission
* 权限
* @param path
* 路径
*/
public static void chmod(String permission, String path) {
try {
String command = "chmod " + permission + " " + path;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
} catch (IOException e) {
e.printStackTrace();
}
}