대형 화면에 광고를 표시하는 Android 앱을 작성 중입니다. 광고주가 광고를 선택할 수있는 백엔드가있어 거의 즉시 업데이트됩니다. 많은 안드로이드 박스가 (HDMI 스크린에 연결되어 있기 때문에) 원격으로 소프트웨어를 업데이트 할 수 있어야합니다. (해제하지 않는 한)프롬프트없이 Android APK 설치
홈페이지 응용 프로그램이 계속 실행되고 사용자가 어떤 안드로이드와 관련된 볼 수 없습니다 :
이
경우입니다. 업데이트를 수신하고 기본 apk를 삭제하고 새 apk를 설치하는 업데이터 응용 프로그램이 필요합니다. 업데이트하는 동안 새 기본 apk가 설치되어 표시 될 때까지 "업데이트 중입니다. 기다려주십시오"라는 활동이 표시됩니다.우리가 필요한 것은 :
우리는 루팅 된 기기에 사용자에게 메시지를 표시하지 않고 업데이트 메커니즘을 구현하는 방법에 대한 도움이 필요합니다.
우리가 무엇을 가지고 : 업데이터 응용 프로그램은 서비스 시작 (이 서비스가 곧 동료에 의해 구현 될 것 업데이트를 수신합니다) 부팅받은 이벤트에 중독되어
. 서비스는 업데이트하는 동안 업데이트 정보를 요구하는 활동을 시작할 수 있습니다. 매니페스트
<!-- Permission to start UpdaterService on boot -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<!-- Install/delete permissions, only granted to system apps -->
<uses-permission android:name="android.permission.INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.DELETE_PACKAGES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
에서
try {
Process proc = Runtime.getRuntime().exec(new String[]{"su", "pm install -r /mnt/sdcard/MYFOLDER/testAPK.apk"});
stringBuilder.append(String.valueOf(proc.waitFor()));
stringBuilder.append("\n");
} catch (Exception e) {
if (e instanceof IOException) {
Log.d(TAG, "IOException");
} else if (e instanceof InterruptedException) {
Log.d(TAG, "InterruptedException");
} else {
e.printStackTrace();
}
}
모두 StringBuilder (11)을 인쇄하지만 임의 unexisting 명령을 부여하는 경우와 동일한 작업을 수행 업데이터 활성
..
내 앱을 sy로 설치하지 않으면 패키지 설치 및 패키지 삭제가 쓸모가 없다. 줄기 응용 프로그램, 내가 맞습니까?
짧은 이야기, 내 테스트 APK를 설치하지 않았으며 해결 방법을 모릅니다. 도움이 될 것입니다.
을 확인/시스템/응용 프로그램에서 업데이터 응용 프로그램을 넣어/그리고 당신은 INSTALL_PACKAGES 얻을 것이다하시기 바랍니다 아래의 샘플 코드는 DELETE_PACKAGES permission – nandeesh