여전히 MODE_PRIVATE 동안 두 가지 다른 응용 프로그램간에 공유 환경 설정을 this great technique 구현하려고합니다.동일한 APK에서 두 개의 패키지가 가능합니까?
Context c = createPackageContext("com.app.first", MODE_PRIVATE);
로 대체해야합니다 :
내 문제는 첫 번째 응용 프로그램이 첫 번째 응용 프로그램이 설치 (또는 그 반대) 등 있다고 가정 할 수 없다는 것입니다
Context c = createPackageContext("com.app.shared", MODE_PRIVATE);
하지만 의무는 추가 그 com.app.shared
은 실제로, 두 번째 APK로 변환됩니까?
AndroidManifest.xml
및 매니페스트 파일 당 하나의
<manifest package= >
있다. APK 당 실제 패키지는 하나 뿐이니까? 응용 프로그램 당 2 개의 APK가 필요 없으며 응용 프로그램 당 하나의 APK 만 필요합니다.
이 방법이 있습니까?
나를 비참한 접근으로부터 구해 주셔서 감사합니다. 이제는 "공유 된"환경 설정의 "보급 된"가용성에도 불구하고 다소 많은 안전 장치가 있어야하는 많은 해결 방법과 트릭이 필요하다는 것을 알게되었습니다. 이제 애플리케이션간에 무엇이든 공유하는 올바른 접근 방식은 [Content Providers] (http://developer.android.com/guide/topics/providers/content-providers.html)를 통해 이루어지는 것이라고 저는 생각합니다. 나는 올바른 방향으로 나아가고 있는가? – ef2011
@ ef2011 : 앱간에 정보를 공유하는 데는 여러 가지 방법이 있습니다. 'ContentProvider'가 하나의 가능성입니다. 이 경우 개인적으로 앱의 환경 설정이 변경되면 권한 보안이 설정된 브로드 캐스트를 보내고 다른 앱에서 선택하여 자체 복사본에 적용합니다. 그런 식으로 설정을 미러링하는 두 앱 모두에서 하나의 앱이 제거되고 두 앱의 설정이 모두 삭제되는 것에 대해 걱정할 필요가 없습니다. 또한 어떤 앱이 먼저 설치되는지 신경 쓰지 않아도됩니다. 부작용으로 필요에 따라 세 개 이상의 앱으로 원활하게 확장됩니다. – CommonsWare
불행하게도 ContentProvider는 [INSTALL_FAILED_CONFLICTING_PROVIDER] (http://stackoverflow.com/q/6273592/722603) 제한으로 인해 두 가지 패키지가 동일한 콘텐츠 공급자를 공유 할 수 없기 때문에 가능성이 없습니다. 그래서, ** 갈 유일한 길은 당신이 제안한 "허가 된 보안 방송"입니다. 이 링크에 대해 더 자세히 알 수있는 링크가 있습니까? – ef2011