Android application self-update
24,767
If the updated apk has the same package name and is signed with the same key you can just send a intent which will call a default android installer. The installed apk will be overriden.
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File(pathToApk));
intent.setDataAndType(uri, "application/vnd.android.package-archive");
startActivity(intent);
Author by
nonickh
Updated on July 03, 2020Comments
-
nonickh almost 4 years
Possible Duplicate:
Android: install .apk programmaticallyI need to update my android application. Internally the program, I download the new version. How can I replace the current version by that new was downloaded (programmatically)?
URL url = new URL("http://www.mySite.com/myFolder/myApp.apk"); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); try { FileOutputStream fos = this.getApplicationContext().openFileOutput("myApp.apk", Context.MODE_WORLD_READABLE|Context.MODE_WORLD_WRITEABLE); InputStream in = new BufferedInputStream(urlConnection.getInputStream()); BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); StringBuilder sb = new StringBuilder(); byte[] buffer = new byte[8192]; int len; while ((len = in.read(buffer)) != -1) { // EDIT - only write the bytes that have been written to // the buffer, not the whole buffer fos.write(buffer, 0, len); // file to save app } fos.close(); .... here I have the file of new app, now I need use it
-
nonickh over 12 yearsHi @lexmiir, thanks for reply, I do what you said and now I got an alert dialog saying Parser Error - There is a problem parsing the package. Any clues? :-)
-
Alexei over 12 yearsHi @nonickh, did you signed both apk's with the same key? This error may appear when the applications with the same package name are signed with different keys
-
nonickh over 12 yearsHi @lexmiir, Sorry for the delay, I compared the two files and they are different, probably caused by the process of copying the site, I first try to resolve this problem, grateful for your support
-
David O'Meara almost 12 yearsprobably already resolved, but for future reference you should not write the full buffer, only the number of bytes read ie
fos.write(buff, 0, len)
wherelen
will probably be less thanbuffer.length
when the last chunk is written. -
2red13 almost 12 yearsI had the same error and solved it by uploading the apk file by using binary mode in the ftp program.