2012-05-23 2 views
4

내 응용 프로그램은 내 응용 프로그램의 새 버전이 있는지 확인합니다 (내 응용 프로그램은 게임을 실행하지 않습니다). 그리고 apk 파일을 sdcard/download에 자동으로 다운로드합니다. 그럼 설치를 시작하고 싶습니다 그리고 나는이 코드를 사용합니다안드로이드는 URL에서 apk를 설치합니다

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "file.apk")), "application/vnd.android.package-archive"); 
startActivity(intent); 

을하지만 팝업을 표시 "오류 구문 분석 : 패키지 구문 분석에 문제가 있습니다"내 AndroidManifest를 나는 뒀다 속으로

가 허가 : APK를가 손상된 매니페스트 파일이있는 경우

<uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> 
    <uses-permission android:name="android.permission.DELETE_PACKAGES"/> 

답변

1

가 수동으로 파일을 설치 할 수 있습니까는 패키지를 구문 분석 오류 문제가 온다. 다운로드 한 파일의 수동 설치가 처음부터 작동하는지 확인하십시오.

+0

네, 그것은 시작하지만 클릭 버튼을 설치할 때 보여 내가 해결 한 – MimmoG

+1

"는 서명이 충돌하는 같은 이름의 기존 패키지가 이미 설치되어있는"문제는 내가 설치 한 것이 었습니다 이클립스로 응용 프로그램을 누른 다음 웹에서 APK를 다운로드하고 설치하십시오. – MimmoG

1

비슷한 오류 메시지가 있습니다. 내 문제의 근본 원인은 sdcard 대신 내 application data 디렉토리에 다운로드 한 apk을 저장한다는 것이 었습니다. /sdcard/myprog.apk에 저장하면 아무 문제없이 설치를 수행 할 수있었습니다.

웹 브라우저 다운로드에서 설치를 수행 할 수 있었기 때문에 다운로드 위치를 파악한 다음 프로그래밍 방식으로 다운로드하여 동일한 위치에 저장해야했습니다.

다음과 같이 업데이트 프로세스에 매우 유용합니다. Download a file with Android, and showing the progress in a ProgressDialog 다음 설치와 관련하여 비슷한 것을 사용했습니다.

3

파일 경로 앞에 "file : //"을 추가해야합니다. 이 같은 일 :

intent.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); 
startActivity(intent);