2012-07-11 2 views
2

파일 서버에서 APK를 설치하려고합니다. 사용자가 설치 여부를 선택하거나 권한 설정/변경 사항을 수락하지 않아도 자동으로 수행해야합니다. 우리가/system/app에 응용 프로그램을 미리로드하기 위해 장치 공급 업체와 협력 할 때 합법적 인 비즈니스 요구 사항입니다. 이는 맞춤 Android 태블릿 기기이므로 Google의 업무 부서에서는 앱 업데이트를 적용하여 최신 버전을 적용 할 수 있도록하고 싶습니다.프로그래밍 방식으로 Android apk 설치

저는 일반적인 보안 제한 사항을 알고 있지만 공급 업체/제조사 수준의 응용 프로그램을 자동으로 설치하는 메커니즘이있는 것으로 보입니다. 그러나 이것을 수행하는 방법에 대한 정보는 기껏해야 아주 드문 것 같습니다.

패키지 설치 프로그램이/system/app에 있어야하며 설치 프로그램에 설치할 앱과 동일한 서명 인증서 키가 있어야합니다. 문제는 아니지만이 흐름을 사용하여이 기능을 구현하는 방법에 대한 정보는 아직 찾지 못한 것입니다.

누구도 이전에이 작업을 수행 했습니까?

+1

자동 업데이트에서와 마찬가지로? 거대한 보안 구멍처럼 들린다. 멋지 겠지만 안드로이드 OS가 그렇게 할 수 있을지는 의심 스럽다. +1 –

+2

예 Ryan이 맞습니다. 그러나 가능한 방법을 찾으려면 http://stackoverflow.com/questions/5803999/install-apps-silently-with-granted-install-packages-permission을 확인할 수 있습니다. –

+1

장치 공급 업체에게이 질문을했을 때, 그들은 무엇을 말 했습니까? – CommonsWare

답변

1

나는 당신이 이것을 할 수있게 해주는 커스텀 안드로이드 ROM을 보낼 필요가 있다고 확신한다.

일반 장치의 Amazon App Store는 Google Play처럼 백그라운드에서 자동으로 설치할 수 없습니다. 어쩌면 킨들 파이어 (Kindle Fire)는 아마존 (Amazon)이 만든 커스텀 ROM에서 실행되기 때문에 가능하다.

당신이 할 수있는 최선의 방법은 사용자에게 업데이트해야하는 응용 프로그램을 가져 오는 인 텐트를 실행하는 것입니다.이 인 텐트는 설치 프로그램 활동으로 가져와 사용자 상호 작용이 필요합니다.

0

정확히 답변이 아닙니다. 그러나 우리는 최근에 안드로이드 클라이언트 - 서버 응용 프로그램에 대한 비슷한 요구 사항에 직면했습니다.

응용 프로그램이 요청으로 서버에 접속할 때마다 현재 versionCode도 보냅니다.

PackageInfo pInfo = getPackageManager().getPackageInfo(getPackageName(), 0); 
//pInfo.versionCode; 
//pInfo.versionName; 

은 서버 측에 우리는 versionCode를을 확인하고 우리가 새 버전이있는 경우, 클라이언트를 알리고 클라이언트가 새 버전으로 업그레이드 할 수있는 사용자를 강제로. 클라이언트 응용 프로그램은 새 버전으로 업그레이드 될 때까지 작동하지 않습니다. 하지만 분명히 사용자는 설치하지 않기로 선택할 수 있습니다.

희망이 있습니다.