您的位置:首页 > 移动开发 > Android开发

Android代码实现APK文件的安装与卸载

2011-06-21 10:36 741 查看

Android程序使用代码的安装和卸载!!! 

安装:

String str = "/CanavaCancel.apk";
String fileName = Environment.getExternalStorageDirectory() + str;

Intent intent = new Intent(Intent.ACTION_VIEW);

 intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");

startActivity(intent);
卸载:

Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");   
Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);   
startActivity(uninstallIntent);
Environment拥有一些可以获取环境变量的方法 
package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).

//下载apk程序代码
protected File downLoadFile(String httpUrl) {

                // TODO Auto-generated method stub

                final String fileName = "updata.apk";

                File tmpFile = new File("/sdcard/update");

                if (!tmpFile.exists()) {

                        tmpFile.mkdir();

                }

                final File file = new File("/sdcard/update/" + fileName);

                try {

                        URL url = new URL(httpUrl);

                        try {

                                HttpURLConnection conn = (HttpURLConnection) url

                                                .openConnection();

                                InputStream is = conn.getInputStream();

                                FileOutputStream fos = new FileOutputStream(file);

                                byte[] buf = new byte[256];

                                conn.connect();

                                double count = 0;

                                if (conn.getResponseCode() >= 400) {

                                        Toast.makeText(Main.this, "连接超时", Toast.LENGTH_SHORT)

                                                        .show();

                                } else {

                                        while (count <= 100) {

                                                if (is != null) {

                                                        int numRead = is.read(buf);

                                                        if (numRead <= 0) {

                                                                break;

                                                        } else {

                                                                fos.write(buf, 0, numRead);

                                                        }

                                                } else {

                                                        break;

                                                }

                                        }

                                }

                                conn.disconnect();

                                fos.close();

                                is.close();

                        } catch (IOException e) {

                                // TODO Auto-generated catch block

                                e.printStackTrace();

                        }

                } catch (MalformedURLException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                }

                return file;

        }
//打开APK程序代码


private void openFile(File file) {

                // TODO Auto-generated method stub

                Log.e("OpenFile", file.getName());

                Intent intent = new Intent();

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                intent.setAction(android.content.Intent.ACTION_VIEW);

                intent.setDataAndType(Uri.fromFile(file),

                                "application/vnd.android.package-archive");

                startActivity(intent);

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息