2013-08-20 2 views
5

Я загрузил файл apk, используя диспетчер загрузки api, и я не знаю, где этот файл хранится. Теперь я должен найти этот файл apk и установить его Дайте подсказку. Заранее спасибоУстановить файл apk автоматически после загрузки

+0

У.е. не указано местонахождение. – Prakhar

+0

Возможный дубликат [Android: установить .apk программно] (http://stackoverflow.com/questions/4967669/android-install-apk-programmatically) – jk2K

ответ

5

Для установки Используйте APK этого кода:

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

Спасибо за ответ Prakhar – Uday

+1

, затем подтвердите или примите .. – Prakhar

+0

Привет, где следует Я положил файл apk? –

3

Чтобы установить файл автоматически после загрузки, вы должны объявить сказать устройство для выполнения этого действия после загрузки по вещанию этого сообщения после того, как скачать:

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

и обработчиком:

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, я внес изменения, как вы сказали, но я не получаю то, что я дал для «filename», потому что я не знаю, где это сохранение файла после загрузки. – Uday

+0

@Uday попробуйте этот код после редактирования..Он должен работать –

+0

@Adb EI-Rahman Я поставил код, который вы дали, но он показывает ошибку «Метод getUriForDownloadedFile (long) не определен для типа DownloadManager». :( – Uday

0

@Uday, @Adb Код El-Rahman работает. Когда вы инициализируете загрузку, вам необходимо установить uri назначения.

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

, где я могу поместить этот код? – hariszaman

Смежные вопросы