2013-08-20 3 views
5

다운로드 관리자 api를 사용하여 apk 파일을 다운로드했으며 파일 저장 위치를 ​​알 수 없습니다. 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

주셔서 감사합니다 다음 upvote 또는 동의 .. – 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 엘 라만 코드가 작동합니다. 다운로드를 초기화 할 때 대상 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

관련 문제