如何在免费和付费版本的应用程序中使用相同的ContentProvider权限?

Cod*_*ile 6 android android-manifest android-contentprovider

我已经开始使用Android库项目来整合我的付费和免费版本代码.

我使用ContentProvider遇到了问题.由于ContentProvider是在库类中定义的,因此两个应用程序都使用相同的权限.这意味着由于INSTALL_FAILED_CONFLICTING_PROVIDER错误,android会阻止安装第二个应用程序(按任意顺序).

05-22 11:14:40.563: WARN/PackageManager(102): Can't install because provider name com.cfms.android.podcast (in package com.cfms.android.podcastlite) is already used by com.cfms.android.podcastpaid
05-22 11:14:40.563: WARN/PackageManager(102): Package couldn't be installed in /data/app/com.cfms.android.podcastlite-2.apk
Run Code Online (Sandbox Code Playgroud)

我该如何处理这个问题?理想情况下,我希望每个应用程序版本的权限相同,所以我不必在公共代码库中放入一堆异常.如果那是不可能的,我该怎么办呢?

CL2*_*L22 6

在同一设备上使用相同权限的不同提供商的两个应用程序根本不可能.

http://hustleplay.wordpress.com/2010/02/28/android-install_failed_conflicting_provider/

android重复提供者权限.

我将在每个应用程序中创建一个不同的字符串资源,然后将其传递给库以创建具有适当权限的提供程序.

  • 多数民众赞成我害怕的.这也意味着我必须将所有基于静态最终权限的变量重新编写到运行时初始化中.主要是我试图避免的. (4认同)