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) {
- 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) {
- e.printStackTrace();
- }
- } catch (MalformedURLException e) {
- 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);
- }