相关疑难解决方法(0)

多个应用使用相同的内容提供商

我正在开发一组仅在某些品牌中有所区别的应用程序(想想不同的运动队); 但是,我遇到了一个问题,我正在为所有特定品牌的应用程序使用一个Library项目,并希望为所有这些应用程序使用相同的ContentProvider.当我创建ContentProvider时,我将AUTHORITY声明为类中的常量(根据dev示例代码),并且我在清单文件中的每个特定应用程序中使用相同的权限.看起来我不能在每个应用程序中使用相同的权限,因为我在尝试安装第二个应用程序时遇到此错误(我安装一个品牌的应用程序,但第二个安装):

WARN/PackageManager(66): Can't install because provider name com.xxx.Provider (in package com.xxx) is already used by com.zzz
Run Code Online (Sandbox Code Playgroud)

我尝试了几种方法,但似乎没有一种方法可行.我还没有完成的一个想法是创建一个库jar,只省略我拥有的Provider类,并在每个特定的应用程序中自定义它.关于如何解决这个问题而不诉诸于此的任何想法?

android android-contentprovider

38
推荐指数
3
解决办法
2万
查看次数

内容提供商INSTALL_FAILED_CONFLICTING_PROVIDER(将内容提供商安装为单独的apk)

我有两个使用相同内容提供程序的应用程序,但我不能在两个应用程序中放置相同的内容提供程序 - 它显示INSTALL_FAILED_CONFLICTING_PROVIDER错误.所以我把我的内容提供商放在第三个.apk中,并从两个应用程序中使用它,它运行良好.

现在问题是 - 必须先安装内容提供程序apk,然后才能在设备上安装这两个应用程序中的任何一个.否则,它会在安装期间显示Provider not found错误.

那么,在安装任何其他apks之前,如何确保安装提供程序apk?

有没有办法将内容提供程序apk与其他两个apks单独合并,因此它们将作为两个应用程序一起安装,并且不会显示INSTALL_FAILED_CONFLICTING_PROVIDER错误?

我需要将内容提供程序apk与两个应用程序合并,因为用户可能无法安装这两个应用程序,也可能将它们安装在单个设备上.

android apk android-contentprovider

37
推荐指数
3
解决办法
3万
查看次数

Android,图书馆项目中的内容提供商

我有一个库项目,为许多需要相同数据库结构和功能的应用程序提供基本代码,我正在寻找实现它的最佳方法.我主要关心的是如何提供非静态权限,以便我可以使用使用该库的应用程序的包名称来覆盖它.

所以在库项目中我想我可以将以下常量更改为静态方法,这些方法将接受允许我从资源字符串或context.getPackageName方法获取权限的上下文

图书馆项目模型

    public static final class Questions implements BaseColumns {
//      public static final Uri CONTENT_URI =
//          Uri.parse("content://" + Config.AUTHORITY + "/questions");
//  use getAuthority instead which in turn will just get the package ae. Will this work?
        public static Uri getContentUri(Context c){
            return Uri.parse("content://" + getAuthority(c) + "/questions");
        }
    ...
    }

public static String getAuthority(Context c){
    return c.getPackageName + ".QuizProvider";
}
Run Code Online (Sandbox Code Playgroud)

图书馆项目内容提供者

public class QuizProvider extends ContentProvider {

//    private SQLiteDatabase mDB;

    private static final String TAG …
Run Code Online (Sandbox Code Playgroud)

android android-contentprovider

9
推荐指数
1
解决办法
5510
查看次数

Android重复提供商权限问题

我们正在尝试发布一款免费广告的付费广告版本,该应用目前免费发布广告.我们重构了所有包名com.mycompanyname.appname.pro,基本上市场上的免费包没有.pro.我们也进入了内容提供商,并将权限更改为与包名相同.所以"免费版"有

AUTHORITY = "com.mycompanyname.appname" 
Run Code Online (Sandbox Code Playgroud)

并且"无广告付费版本有

AUTHORITY = "com.mycompanyname.appname.pro" 
Run Code Online (Sandbox Code Playgroud)

但是我们仍然无法在同一设备上同时安装免费版和"专业版".无论它的价值如何,提供商的类名在两个应用程序中都是相同的.

我们无法直接从apk安装,如果我们尝试从Android市场下载,我们会收到"重复的提供商权限"错误消息.

我们缺少什么?还有另一个地方我们需要寻找问题,还是我们在这里遇到了根本错误的问题?

android android-contentprovider google-play

7
推荐指数
1
解决办法
3万
查看次数