在Jelly Bean上访问其他Android应用程序的资产

在Jelly Bean上访问其他Android应用程序的资产,第1张

概述我有一对 Android应用程序.一个是免费的“读者”应用程序,另一个是付费的“数据”应用程序,其文本文件位于其资产的子目录中. 阅读器应用程序使用以下代码访问数据应用程序的文本文件: Intent myIntent = new Intent("myintent");List<ResolveInfo> dataPacks = packageManager.queryIntentActivitie 我有一对 Android应用程序.一个是免费的“读者”应用程序,另一个是付费的“数据”应用程序,其文本文件位于其资产的子目录中.

阅读器应用程序使用以下代码访问数据应用程序的文本文件:

Intent myIntent = new Intent("myintent");List<ResolveInfo> dataPacks = packageManager.queryIntentActivitIEs(myIntent,0);String packagename = dataPacks.get(0).activityInfo.packagenameResources res = packageManager.getResourcesForApplication(packagename);AssetManager assets = res.getAssets();String[] datafiles = assets.List("Data");

这一直运行良好,但使用Google Play下载到Jelly Bean的应用程序无效(数据文件为空).如果应用程序是直接从电子邮件安装的,那么很好,所以我怀疑我的问题与Google Play最近的安全更改有关.然而,据称这些已被撤消,但我仍然遇到问题.

有人能说清楚出了什么问题吗? (不幸的是我没有Jelly Bean设备)

或者,有人可以建议更好的机制来访问数据应用程序的txt文件吗?

谢谢

解决方法 JB设备上的付费应用程序是“前向锁定”.这意味着APK分为两部分 – 一部分使用公共资源,另一部分使用私有部分和代码,其他应用程序无法读取.这里有一些细节: http://nelenkov.blogspot.com/2012/07/using-app-encryption-in-jelly-bean.html

我没有详细讨论如何拆分文件,但是您看到的问题表明资产是私有APK的一部分,这是有道理的,因为您通常会在资产中粘贴API密钥等.

因此,您需要使用更间接的方法在两个应用程序(如ContentProvIDer或远程服务)之间共享信息.确保您需要签名权限才能访问这些权限,以确保只有您自己的应用才能使用它们.

总结

以上是内存溢出为你收集整理的在Jelly Bean上访问其他Android应用程序的资产全部内容,希望文章能够帮你解决在Jelly Bean上访问其他Android应用程序的资产所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1129112.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存