首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重新签署APK并通过ContentProvider获取数据

重新签署APK并通过ContentProvider获取数据
EN

Stack Overflow用户
提问于 2016-04-19 11:41:52
回答 1查看 100关注 0票数 3

我目前正在编写一个应用程序(应用程序A),它依赖于另一个应用程序的数据(应用程序B)。

作为一个Android,我认为启用该功能的唯一方法是使用ContentProvider并执行查询。

就目前情况而言,目前的做法存在问题,因为应用程序B比我们用于应用程序A的签名具有另一个签名,这意味着:

  • 让我们的应用程序相互交谈的唯一方法是在签名服务器上发送我们的apk,以便它也用应用程序B 使用的相同密钥进行签名。
    • 这个过程不是自动化的,因此时间效率很低(大约需要2-4分钟)。
    • 这也意味着我们不能设置调试点,这会使我们在试图查看ContentProvider确切地返回哪些数据时感到很痛苦。

我做了更多的研究,一位同事告诉我,与其每次做一点小小的改动,我们就可以签我们的apk,我们可以提取App的apk,然后用我们的密钥签名一次。

这导致我为我的团队创建了一个密钥存储库和密钥,我用它来重新签署App的apk并在我们的测试设备上重新安装它。然后,我将Android设置为使用完全相同的键自动对App的调试版本进行签名。问题是这并没有改变任何不幸的..。它总是以引发以下异常而告终:

Failed to find provider info for com.App.B.provider

(在使用默认App并将App apk发送到签名服务器时,基本上会引发相同的错误)

要指出的是,如果您想知道,将App的apk发送到签名服务器并运行它就可以了,我们将从ContentProvider获得数据

所以我不知道该怎么办了..。有什么想法吗?而且,由于我不知道我在做什么,任何关于这些事情应该如何进行的解释都是非常受欢迎的!

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 12:46:45

<provider>标签应该放在<application>标签中。另外,请注意不要将其放入<activity>标记中。此外,还可以在清单文件中的<authorities>标记中指定完整路径(请参阅SDK中的SearchableDictionary示例代码)。

代码语言:javascript
复制
<provider android:name=".DictionaryProvider"
   android:authorities="com.example.android.searchabledict.DictionaryProvider">

或者,您可以使用外部存储,创建目录和直接从那里访问数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36717341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档