Ich möchte, dass eine Apk vom Internet heruntergeladen wird und im hintergrund ohne extra neue Zustimmung installiert wird. Schließlich drückt der Nutzer ja extra auf Installieren. Der Download funktioniert sehr gut. Aber das Installieren funktioniert garnicht oder es stürtzt ab. Ich habe mehrere Sachen ausprobiert, selbst eine einfache Installation, wo der Nutzer extra Zustimmen muss, geht nicht(Also wenn man eine Apk runterlädt und auf die Datei klickt, dann öffnet sich ja ein Fenster, ob man die App/Update installieren möchte oder nicht).
Ich habe gelernt, dass die Hardware nur 0 und 1 versteht. Über die Hardware liegt Assembler. Assembler hat keine Regeln und keine Gesetze. Assembler kann und darf alles machen. Über Assembler liegt das Betriebsystem, was im Kern Assembler hat und der Rest eine Hochsprache ist(C, C++,..). Das Betriebsystem hat Regeln und gesetze festgelgt und alle müssen sich daran halten.
Android ist ja Open Source! Das darf jeder einsehen und ja verändern... Aber der Play Store kann ja auch Apps im Hintergrund installieren, obwohl er selber auf dem Betriebsystem läuft und sich an dessen Regeln halten muss! Also Ansicht ist es ja möglich, aber nicht zu einfach.
Wie kann ich eine Runtergeladene Datei im Hintergrund installiert bekommen?
Wiso kann ich es nicht mit dem Android Fester installieren, wo der Nutzer es noch mal Zustimmen muss?
Jede Hilfe ist sehr willkommen!
Das sind meine ganzen Installationen versuche:
Wer könnte mir helfen, damit man erstmal normal installiert und später auch ohne extra neue Zustimmung installieren kann(Der Nutzer gibt ja die Zustimmung, weil er ja schon auf den Installieren Button gedrückt hat! )
Ich habe gelernt, dass die Hardware nur 0 und 1 versteht. Über die Hardware liegt Assembler. Assembler hat keine Regeln und keine Gesetze. Assembler kann und darf alles machen. Über Assembler liegt das Betriebsystem, was im Kern Assembler hat und der Rest eine Hochsprache ist(C, C++,..). Das Betriebsystem hat Regeln und gesetze festgelgt und alle müssen sich daran halten.
Android ist ja Open Source! Das darf jeder einsehen und ja verändern... Aber der Play Store kann ja auch Apps im Hintergrund installieren, obwohl er selber auf dem Betriebsystem läuft und sich an dessen Regeln halten muss! Also Ansicht ist es ja möglich, aber nicht zu einfach.
Wie kann ich eine Runtergeladene Datei im Hintergrund installiert bekommen?
Wiso kann ich es nicht mit dem Android Fester installieren, wo der Nutzer es noch mal Zustimmen muss?
Jede Hilfe ist sehr willkommen!
Das sind meine ganzen Installationen versuche:
Java:
private void DownloadApk() {
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
String fileName = "cwa.apk";
destination += fileName;
final Uri uri = Uri.parse("file://" + destination);
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(apk_url));
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setTitle("Download " + app_name);
request.setDescription("");
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "cwa.apk");
DownloadManager manager = (DownloadManager)getActivity().getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
final long downloadId = manager.enqueue(request);
BroadcastReceiver onComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setDataAndType(uri, manager.getMimeTypeForDownloadedFile(downloadId));
startActivity(install);
getActivity().unregisterReceiver(this);
getActivity().finish();
}
};
getActivity().registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
InstallApk();
}
*/
Java:
private void InstallApk() {
/*
String destination = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/";
String fileName = "cwa.apk";
destination += fileName;
final Uri uri = Uri.parse("file://" + destination);
BroadcastReceiver onComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Intent install = new Intent(Intent.ACTION_VIEW);
install.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
install.setDataAndType(uri);
startActivity(install);
getActivity().unregisterReceiver(this);
getActivity().finish();
}
};
getActivity().registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
*/
/*
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS + "/cwa.apk")), "application/vnd.android.package-archive");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS + "cwa.apk")), "application/vnd.android.package-archive");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "cwa.apk")), "application/vnd.android.package-archive");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_INSTALL_PACKAGE);
File file = new File(Environment.DIRECTORY_DOWNLOADS + "/cwa.apk");
i.setData(Uri.fromFile(file));
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_INSTALL_PACKAGE);
File file = new File(Environment.DIRECTORY_DOWNLOADS + "/cwa.apk");
i.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_VIEW);
File file = new File(Environment.DIRECTORY_DOWNLOADS + "/cwa.apk");
i.setDataAndType(Uri.fromFile(file), "application/vnd.android.package-archive");
startActivity(i);
*/
/*
Intent i = new Intent(Intent.ACTION_INSTALL_PACKAGE);
i.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
i.setDataAndType(Uri.fromFile(new File(Environment.DIRECTORY_DOWNLOADS + "cwa.apk")), "application/vnd.android.package-archive");
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
*/
}
Wer könnte mir helfen, damit man erstmal normal installiert und später auch ohne extra neue Zustimmung installieren kann(Der Nutzer gibt ja die Zustimmung, weil er ja schon auf den Installieren Button gedrückt hat! )