1

4.2에서 다음 코드를 사용하여 APK를 설치하면 APK 버전이 현재 설치된 버전보다 낮 으면 설치가 실패합니다. 다운 그레이드를 허용하는 PutExtra()가 있습니까?Android 4.2에서 인 텐트를 사용하여 프로그래밍 방식으로 APK를 설치하는 경우 다운 그레이드를 어떻게 허용합니까?

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

아니면 다른 방법으로해야합니까? 수 있도록 다운 그레이드 AFAIK

+0

나는 앱을 제거하거나 **'adb' ** (개발자 용)를 통해 설치하는 것을 제외하고 일반적으로 다운 그레이드를 지원하는 방법을 모르고있다. – CommonsWare

+1

adb로 설치된 앱을 다운 그레이드 할 수 없었습니다. -/내가 아는 유일한 해결책은 앱을 먼저 제거하는 것입니다. 개인 설정 및 영구 데이터 레이아웃이 버전마다 다를 수 있기 때문에 이는 또한 매우 합리적입니다. 이전 버전의 앱은 최신 버전의 데이터 변경에 대처할 수 없습니다. – tiguchi

+1

4.2에서 명령 행에서 pm을 사용하면 다운 그레이드를 허용하는 -d 옵션이 있습니다. 내 응용 프로그램에서 설치를 시작할 때도 똑같은 작업을 수행하고 싶습니다. – NebulaSleuth

답변

0

이 응용 프로그램은 당신이

부터 너무

당신의 의도 당신이 통제 할 수없는 그렇지 않으면 현재 설치된 응용 프로그램을 다운 그레이드 다운 그레이드 할 수있는 경우 응용 프로그램의 기능이되고 설치된다 그것은

다음은 응용 프로그램

당신이 매니페스트

에서 설정할 수있는이 속성에서 설정할 수있는 설정

+1

"복원이 필요한 응용 프로그램"옵션이 IDE에 없기 때문에 안드로이드 용으로 Mono를 사용하고 있습니다. 그러나 androidmanifest.xml의 섹션에 android : restoreAnyVersion = "true"를 추가해도 Android 4.2에서 문제가 해결되지 않았습니다. 매니페스트에 필요한 다른 옵션이 있습니까? – NebulaSleuth

0

은 적어도 같은 versionName을/versionCode를 작품에 여분의 다음 이 (나 (안드로이드 4.2.2), 갤럭시 S4는 활성을 위해 의도 :

내 경우
Uri uri = Uri.fromFile(new File(PATH_TO_FILE_APK)); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.putExtra('Intent.ACTION_PACKAGE_REPLACED', "your.package.name"); 
intent.setDataAndType(uri, "application/vnd.android.package-archive"); 
startActivity(intent); 

, 이것은 교체 한 후 응용 프로그램을 다시 시작 .