2013-08-20 12 views
5

Ho scaricato il file apk utilizzando il download manager api e non so dove si trova il file. Ora devo trovare quel file apk e installarlo Dai qualche indizio. Grazie in anticipoInstalla il file apk automaticamente dopo il download

+0

non hai specificato la posizione. – Prakhar

+0

Possibile duplicato di [Android: installa .apk a livello di codice] (http://stackoverflow.com/questions/4967669/android-install-apk-programmatically) – jk2K

risposta

5

Per installare un uso apk questo codice:

Intent promptInstall = new Intent(Intent.ACTION_VIEW) 
    .setData(Uri.parse("file:///path/to/your.apk")) 
    .setType("application/vnd.android.package-archive"); 
startActivity(promptInstall); 
+0

Grazie per la risposta Prakhar – Uday

+1

quindi upvote o accetta .. – Prakhar

+0

Ciao, dove dovrebbe Ho messo il file apk? –

3

Per installare il file automaticamente dopo il download, è necessario dichiarare dire al dispositivo per eseguire questa azione dopo il download dal Broadcasting questo messaggio dopo scaricare:

registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); 

e sul gestore:

BroadcastReceiver onComplete=new BroadcastReceiver() { 
public void onReceive(Context ctxt, Intent intent) { 

    long id = intent.getExtras().getLong(DownloadManager.EXTRA_DOWNLOAD_ID); 
    DownloadManager dm =(DownloadManager)getSystemService(DOWNLOAD_SERVICE); 
    intent = new Intent(Intent.ACTION_VIEW); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    intent.setDataAndType(dm.getUriForDownloadedFile(id), 
    dm.getMimeTypeForDownloadedFile(id)); 
    startActivity(intent); 
} 
}; 
+0

@Adb EI-Rahman, ho apportato una modifica come già detto ma non ottengo quello che ho dato per "nomefile" perché non so dove quel file si salva dopo il download. – Uday

+0

@Uday provare questo codice dopo le modifiche .. Dovrebbe funzionare –

+0

@Adb EI-Rahman ho messo il codice quello che hai dato ma mostra errore "Il metodo getUriForDownloadedFile (long) non è definito per il tipo DownloadManager." :( – Uday

0

@Uday, il codice di @Adb El-Rahman funziona. Quando si inizializza il download è necessario impostare l'uri di destinazione.

String sAndroidUrl = "http://somesite.com/Install.apk"; 

dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
Request request = new Request(Uri.parse(sAndroidUrl)); 
String sDest = "file://" + android.os.Environment.getExternalStorageDirectory().toString() + "/Download/Install.apk"; 
request.setDestinationUri(Uri.parse(sDest)); 
enqueue = dm.enqueue(request); 
+0

dove metto questo codice? – hariszaman

Problemi correlati