콘텐츠 제공 업체와 데이터를 공유하는 데 필요한 애플리케이션이 5 개 이상 있으며 각 애플리케이션을 먼저 설치해야 테이블과 URI를 만들어야하므로 모든 애플리케이션에서 매니페스트에 제공 업체를 선언해야합니다. 프로 바이더를 초기화하는 어플리케이션 권한을 부여합니다. 설치 오류 : INSTALL_FAILED_CONFLICTING_PROVIDER 오류가 발생했습니다. 어떻게이 문제를 해결할 수 있습니까?android 콘텐츠 제공 업체 오류 INSTALL_FAILED_CONFLICTING_PROVIDER
답변
I have more than 5 applications on the phone that they need to share data with content provider
대부분의 경우 이는 좋지 않습니다.
so in all applications I should declare provider in manifest, to give the application authority to initialize provider
그건 작동하지 않습니다.
But I got Installation error: INSTALL_FAILED_CONFLICTING_PROVIDER error
이것이 작동하지 않는 이유입니다.
how can I manage this problem ?
이 좋은 생각하는 순간 가정하면, android:enabled="false"
로 표시된 <provider>
와 응용 프로그램을 제공 할 수있다. 그런 다음 첫 번째 앱은 ContentProvider
에 액세스하려고 시도하고 다른 사람이 ContentProvider
을 설정하지 않은 것으로 확인되면 자체 앱을 활성화 할 수 있습니다 (PackageManager
및 setComponentEnabledSetting()
참조).
그래서 다섯 개의 응용 프로그램 이름이 A, B, C, D 및 E라고 가정 해 봅시다. A가 먼저 설치되었습니다. 사용자가 그것을 실행하면 A는 ContentProvider
이 없음을보고 자체를 활성화합니다. 사용자는 B, C, D 및 E를 설치하고 A는 모두 ContentProvider
을 사용하여 데이터를 저장합니다. 사용자는 이제 A를 제거합니다. B, C, D 및 E는 A가 제거 될 때 데이터가 사라 지므로 모든 데이터를 잃게됩니다. 모든 사용자가이 점을 이해하지 못합니다.
B, C, D 및 E가 A에 전적으로 의존하는 경우에만 좋은 시나리오가됩니다.이 경우 B, C, D 및 E는 자신의 ContentProvider
이 필요하지 않습니다. 그들은 항상 A를 사용할 수 있고 A가 없으면 사용자의 잘못입니다.
이 같은 모든 응용 프로그램의 매니페스트 제공자를 정의해야합니다 :
android:authorities="com.app.SomeContentProvider${applicationId}"
것이 중요 공급자는 모든 응용 프로그램에 대한 고유이다.
- 1. android - 여러 콘텐츠 제공 업체
- 2. Android SMS 콘텐츠 제공 업체
- 3. android 콘텐츠 제공 업체 권한
- 4. Android - 복잡한 데이터베이스 및 콘텐츠 제공 업체
- 5. Android - 콘텐츠 제공 업체 쿼리 커서
- 6. android 콘텐츠 제공 업체 합계 쿼리
- 7. Android Schematic 콘텐츠 제공 업체 라이브러리 구성?
- 8. 메시지 액세스를위한 Gmail 콘텐츠 제공 업체
- 9. Android 콘텐츠 공급 업체 목록
- 10. NDK/C++ 측에서 콘텐츠 제공 업체 데이터에 액세스하는 Android
- 11. 하나의 APK에있는 Android 콘텐츠 제공 업체 및 앱?
- 12. 네트워크 접근성 및 콘텐츠 제공 업체 on android
- 13. 로컬 SQLite DB 용 Android 콘텐츠 제공 업체 : 이유가 무엇입니까?
- 14. Android - sqlite 콘텐츠 제공 업체 및 멀티 스레딩
- 15. Android : 유효한 콘텐츠 제공 업체 URI를 만들 때 발생하는 문제
- 16. Android - 콘텐츠 제공 업체 및 이미 생성 된 데이터베이스
- 17. Android - 배터리 사용량 - 서비스 또는 콘텐츠 제공 업체
- 18. 위치 제공 업체 결정 - Android
- 19. 콘텐츠 제공 업체 URI의 인 텐트?
- 20. 콘텐츠 제공 업체, 기관 및 URI 일치
- 21. 콘텐츠 제공 업체 : 정적 외관으로 포장 하시겠습니까?
- 22. Android 캘린더 제공 업체 API 레벨
- 23. Android - 콘텐츠 제공 업체와의 일치
- 24. android에서 타사 앱 콘텐츠 제공 업체 URI를 찾는 방법은 무엇입니까?
- 25. Android 콘텐츠 제공 업체 - 제공하지 않는 애플리케이션 세트로 제공 업체를 제한 할 수 있습니까?
- 26. 이메일 제공 업체 제한 - Android Studio App
- 27. Android 위치 API : 제공 업체 상태 얻기
- 28. Android 위치 - 네트워크 제공 업체, 기기 속도
- 29. 알 수없는 제공 업체 오류 AngularJs
- 30. MMS 콘텐츠 제공 업체 문제 (삼성 갤럭시 S3)
답변 해 주셔서 감사합니다. 안타깝게도 앱 설치 순서를 관리 할 수 없습니다. 먼저이 애플리케이션을 설치할 수 있습니다. 이 경우 공유 데이터 저장소를 구현하는 방법은 무엇입니까? – alexanoid
@alexanoid : "이 경우 공유 데이터 저장소를 구현하는 방법은 무엇입니까?" - 나는 이것을위한 좋은 전략을 모른다. 사용자가 임의의 순서로 앱을 제거 할 수 있기 때문에 복잡한 문제입니다. 내 직감은 데이터를 지속적으로 공유하려고 시도하는 것이 아니라 사용자가 한 앱에서 다른 앱으로 데이터를 명시 적으로 복사 할 수 있도록하는 것입니다. 외부 저장소의 일부 일반적인 위치, 즉 앱을 제거 할 때 제거되지 않지만 마지막 앱을 제거 할 때 정리할 수없는 위치에 데이터를 유지하려고 할 수 있습니다. – CommonsWare
다시 한번 감사드립니다! 간단한 텍스트 파일의 경우, 간단한 접근법을 사용할 수 있습니까? 예를 들어 File f = new File (getContext(). getFilesDir(), "someveryvery uniquename.txt"); 모든 앱간에 정보 (읽기/쓰기)를 공유하려면 어떻게해야합니까? 이 목적으로 getFilesDir() 메서드를 사용하는 것이 좋은 생각입니까? – alexanoid