下载APK,安装代码等片段代码

来源:互联网 发布:羽织淘宝 编辑:程序博客网 时间:2024/06/06 11:23
    /**     * 下载文件     * @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();}}


原创粉丝点击