- Forum-Beiträge: 25
09.01.2019, 10:29:18 via Website
09.01.2019 10:29:18 via Website
Guten Tag meine geschätzten Kollegen,
Ich habe mal wieder ein Problem. Ich habe eine App geschrieben, die sich selbst updaten kann. Die Funktion funktioniert soweit sehr gut, nur gibt es mal wieder ein schwarzes Schaf, wo es nicht ganz so toll funktioniert. Ich habe ein Testgerät dass über Android 7.1.1 verfügt. Auf diesem gerät tritt das vernommen auf, dass bei einem Update, das System fragt, was die Standard Oberfläche sei. Ich versteh nicht warum der das fragt, da meine App keine neue Oberfläche ist.
Meine frage ist nun, muss ich damit leben oder gibt es eine Lösung dafür.
final String UPDATE_FOLDER = Environment.getExternalStorageDirectory().getPath() + File.separator +
"download" + File.separator;
final String UPDATE_FILE = "update.apk";
URL url = new URL(strings[0]);
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
File file = new File(UPDATE_FOLDER);
file.mkdirs();
File outputFile = new File(file, UPDATE_FILE);
if (outputFile.exists())
outputFile.delete();
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
Intent intent = new Intent(Intent.ACTION_VIEW);
File temp = new File(UPDATE_FOLDER + UPDATE_FILE);
if (Build.VERSION.SDK_INT <= 23) {
intent.setDataAndType(Uri.fromFile(temp), "application/vnd.android.package-archive");
} else {
Uri uri = UpdateFileProvider.getUriForFile(getAppContext(), "com.control.update.UpdateFileProvider", temp);
intent.setDataAndType(uri, "application/vnd.android.package-archive");
}
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_GRANT_READ_URI_PERMISSION);
getAppContext().startActivity(intent);
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.