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

    xiaoxiao2025-07-13  3

    安装: String str = "/CanavaCancel.apk"; String fileName = Environment.getExternalStorageDirectory() + str; Intent intent = new Intent(Intent.ACTION_VIEW);  i ntent.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);         }

    转载请注明原文地址: https://ju.6miu.com/read-1300664.html
    最新回复(0)