Install the update in the Android application from my site

I am currently checking the version of the application in the background every 24 hours once on my web server, and not on the Android market. If an update is available, it will prompt the user to download a new apk.

Uri uri = Uri.parse(downloadURL); Intent intent = new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); 

The above code opens the user's browser and starts the download.

I want, without opening the browser, I need to download the apk file or I need to install the latest apk directly without opening another application (for example, a browser).

+3
source share
1 answer

Do something like this

// First you need to download the apk file.

  String extStorageDirectory = Environment.getExternalStorageDirectory().toString(); File folder = new File(extStorageDirectory, "APPS"); folder.mkdir(); File file = new File(folder, "AnyName."+"apk"); try { file.createNewFile(); } catch (IOException e1) { e1.printStackTrace(); } /** * APKURL is your apk file url(server url) */ DownloadFile("APKURL", file); 

// DownloadFile Function

  public void DownloadFile(String fileURL, File directory) { try { FileOutputStream f = new FileOutputStream(directory); URL u = new URL(fileURL); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); //c.setDoOutput(true); c.connect(); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ((len1 = in.read(buffer)) > 0) { f.write(buffer, 0, len1); } f.close(); } catch (Exception e) { System.out.println("exception in DownloadFile: --------"+e.toString()); e.printStackTrace(); } 

and after downloading the apk file write this code

  Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/APPS/" + "AnyName.apk")), "application/vnd.android.package-archive"); startActivity(intent); 

// and grant permission in the manifest

  <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

he can help you, I used it the same way as your needs.

+7
source

All Articles