2012-04-03 2 views
0

Android 기기에 이미 설치된 버전 1의 앱 'A'가 있습니다. 그리고 또 다른 애플 리케이션 'B'는 애플 리케이션 'A'의 버전 2 APK를 가지고 있습니다. 이 앱 'B'autamatically 응용 프로그램 'A'버전 2와 나는 그것을 짓을 이런 식으로 업데이트해야합니다 :Android : 사용자 개입없이 백그라운드에서 다른 앱에서 앱 업데이트

문제는 사용자 개입하라는 메시지이다

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse("file://" + apkPath), APK_MIMETYPE); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
(클릭하도록 요청 버튼 '설치'를) 'A'앱을 업데이트해야합니다. 'A'앱이 백그라운드에서 자동 업데이트되도록 요구합니다.

조건 : 장치가 뿌리되지

  1. .
  2. 시스템 인증서 키를 사용할 수 있습니다. 앱 'B'는 android.uid.system과 같은 shareduserid를 사용하는 시스템 앱으로 실행될 수 있습니다.

위의 조건으로 자동 업그레이드를 수행 할 수 있습니까? Runtime.getRuntime().exec() API를 사용하여 프로그래밍 방식으로 쉘 명령에서 수행 할 수 있습니까?

+3

가능하지 실행할 수없는 뿌리 전화에 유일한 owrk 생각합니다. 사용자와의 상호 작용이 필요합니다. http://stackoverflow.com/questions/5653151/automatically-install-uninstall-an-application-from-within-another-application –

+0

'불가능합니다. 링크에 대한 토론도 참조하십시오 : http://stackoverflow.com/questions/8077779/android-apks-silent-installation –

답변

0

나는 사용자 상호 작용 없이는 달성 할 수 없다고 생각합니다. 패키지 관리자 exmple 스크립트를 통해 응용 프로그램을 설치할 수있는 쉘 스크립트만으로이를 구현할 수 있으며 chmod + x 샘플을 완료해야합니다. 명령 줄을 통해 sh 또는

sample.sh

#!system/bin/sh 

pm install -r Myandroid_application_path/my.apk 

Runtime.getRuntime() 쉘. 간부는() 는 당신을 위해 작동하지만 내 갤럭시 노트 에 나를 위해 내가 노력 HV 작동하지 않는 그 수 있습니다 이 코드는 u도 시도해 볼 수 있습니다 그리고 그것이 작동하는 경우 pls 업데이 트

  Process proc = null; 

    try { 
     Runtime rt = Runtime.getRuntime(); 
     Process proc= rt.exec("/system/bin/pm install -r /mnt/sdcard/chess.apk"); 

    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     Log.d("in catch", ""+proc.getErrorStream()); 

    } 

은 내가 Gscript로 안드로이드의 일부 일부 스크립트 주자를 읽을 HV하지만 난 그것도 내 갤럭시 노트

관련 문제