안드로이드 개발 질문/답변
(글 수 45,052)
자체 개발중인 어플(예를 들어 A.apk)을 업데이트할 수 있게 구현 중입니다.
진행 중인 방법
1. A.apk versionName과 외부DB에 저장 중인 version 정보를 비교.
2. 틀리면 ftp를 이용하여 A.apk파일을 폰의 /sdcard/특정위치/에 저장
1,2번까지는 처리되었고 다운받은 A.apk 파일을 설치해야되는데..
A.apk가 실행중인 상태에서 A.apk를 설치할 수 있는지요?
아니면 A.apk에서 다른 B.apk 어플을 실행시켜고 A.apk는 종료하고 B.apk에서 A.apk를 설치해야하는지요??
현재 A.apk에서 버튼을 클릭하면
Uri installUri = Uri.fromParts("package", "/sdcard/특정위치/A.apk", null);
Intent it= new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);
sendBroadcast(it);
위와 같은 방법으로 해주고
매니패스트에는
<intent-filter>
<action android:name="android.intent.action.ACTION_PACKAGE_ADDED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="package" />
</intent-filter>
이런식으로 되어져 있습니다.
일단 LogCat에는 sendBroadcast(it) 부분에서
Permission Denial: not allowed to send broadcast android.intent.action.PACKAGE_ADDED from pid=XXXXX, uid=XXXXX
이렇게 나오고 안됩니다.