问题标签 [android-lvl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1668 浏览

android - 如何检查其他应用程序的 Android 许可权限

我有一个免费的应用程序,其中包含许多您可以购买的付费升级应用程序。基础游戏是免费的,并且仍然是用户始终启动的应用程序,它会检测其他应用程序的存在并酌情解锁各种升级功能。

我想使用新的许可服务来检测购买的应用程序是否被许可,并将包的名称传递给许可服务以验证它是否被授权(并且盲目地遵循示例我愚蠢地假设将包名称传递给混淆器意味着软件包名称已传递给许可服务器 - 哎呀)。然而,我刚刚意识到那是多么愚蠢,无论如何我都碰壁了:“如果您已经免费发布了您的应用程序,您将无法上传包含许可的更新版本(也就是说,使用相同包名称并包含许可权限的应用程序)”。

所以,一个由两部分组成的问题:是否有任何计划来实现我正在寻找的东西:从免费应用程序内部检查我的其他付费发布的应用程序是否获得许可?

如果不是,那么实现我所寻求的最佳方式是什么?我正在考虑向每个已安装的升级发送一个意图,让他们执行许可检查,然后让升级将响应传递回我的基本应用程序。听起来有点乱——有更好的主意吗?

感谢负载!

0 投票
9 回答
8502 浏览

android - Android“Not_Market_Managed”错误

在尝试市场许可服务时,我遇到了示例应用程序的一些问题。

当我第一次运行示例时,我收到一条错误消息,指出该应用程序未获得许可。我将我的帐户链接到模拟器以使其获得测试响应,现在我收到一条错误消息“应用程序错误:NOT_MARKET_MANAGED”

这是否意味着我必须将应用程序上传到市场才能测试它是否有效?

0 投票
3 回答
712 浏览

android - 当没有数据连接处于活动状态时,Android 许可 ServerManagedPolicy 返回 dontAllow

我已经按照使用 ServerManagedPolicy 的示例代码在我的应用程序中实现了android 许可。

许可证检查器工作正常,但是当设备或模拟器没有数据连接时,许可代码将始终返回 dontAllow(),而我希望它允许。我似乎在上面的页面上找不到任何详细说明如何避免这种情况的内容。

0 投票
2 回答
1213 浏览

android - Android 许可服务器出现问题

我尝试使用 Android 的新许可服务,但遇到了一些麻烦。我在主要活动中的代码如下所示:

(基本上只是Android在线文档的显示代码。如果允许,则回调通过,如果不允许,则显示一条消息并退出应用程序。到目前为止一切都很好。

问题是它在调试器中运行良好,但是当我将它发布到市场并升级我的应用程序时(我已经用我的个人 gmail-accout 购买了我的应用程序版本,所以我是合法用户)我得到了我的应用程序未获得许可的错误。我什至已将我的个人 gmail 地址添加到我的市场资料中的白名单中,并将状态设置为“许可”,但它仍然出现错误。你有什么建议吗 ?

0 投票
5 回答
2595 浏览

android - 使用 LVL 和 AESObfuscator 可以解决糟糕的 SecretKeyFactory 性能吗?

我希望在 Android Marketplace 中使用新的许可 (LVL) 内容,但我遇到了库存 AESObfuscator 的性能问题。具体来说,构造函数需要几秒钟才能在设备上运行(模拟器上的纯粹痛苦)。由于此代码甚至需要运行以检查缓存的许可证响应,因此严重阻碍了在启动时检查许可证。

运行 LVL 示例应用程序,这是我对 AESObfuscator 构造函数的野蛮风格分析:

Nexus One 上的输出:

7 秒的颠簸(在模拟器中大约 20 秒,呃)。我可以在 AsyncTask 上拆分它,但它在那里并没有多大用处,因为在我验证许可证之前,该应用程序无法真正运行。当用户等待我检查许可证时,我得到的只是一个漂亮的、漂亮的七秒进度条。

有任何想法吗?使用比 AES 更简单的东西滚动我自己的混淆器来缓存我自己的许可证响应?

0 投票
2 回答
5648 浏览

android - 离线时的 Android 许可证验证库

所以,我用我的应用程序设置了 Android LVL 来检查许可。这似乎适用于测试帐户。问题是,如果我关闭手机的互联网连接并尝试运行该应用程序,许可检查将失败并告诉我它没有获得许可!

一件事是,为什么它告诉我该应用程序未获得许可,更重要的是,我如何让应用程序“记住”它是否已获得许可。

0 投票
1 回答
1995 浏览

android - 设备上的 Android 许可服务器

我试图弄清楚整个 Android 许可问题,并感到沮丧。在模拟器中,我运行没有帐户或不在测试环境中的应用程序,它似乎工作正常,返回未获得许可的响应并弹出立即购买应用程序消息。

当我尝试在实际的 Android 设备上运行它时,它每次都会返回许可,即使设备帐户不是在测试环境中的帐户。此外,即使它返回许可,“检查许可”框也永远不会消失,除非您单击取消。然后它只允许您使用该应用程序,就好像它已获得许可一样。它主要是示例中的 C&P,有一些更改。我删除了检查许可证按钮和状态文本框。

我只是不知道我需要更改什么才能使其工作......或者许可证是否以某种方式被缓存(即使这是我第一次在此设备上运行它)以及我是否可以在不擦除的情况下取消缓存它该设备,因为当我在其他应用程序上进行测试时,这会很好。另外,如何在不单击取消按钮的情况下删除“检查许可证”消息……我应该让它不显示吗?

0 投票
1 回答
1426 浏览

android - Android LVL 的实时测试

我有一个付费应用程序已经在 Android 市场上架了几个月,到目前为止,该应用程序没有任何类型的复制保护或许可证验证方案。

我刚刚将 LVL 代码的修改版本添加到我的应用程序中。为了测试代码的许可证响应处理,我在模拟器上登录了我的开发帐户并成功通过了所有测试响应,然后在我的真实手机上做了同样的事情(运行 2.2 的 Droid)。

我认为在成功测试之后我应该很好,但我做了最后一次互联网搜索,看看人们是否在他们允许他们的 LVL 实施上线后遇到了问题。令我惊恐的是,我遇到了一个又一个故事,开发人员说他们已经像我一样成功地测试了所有的测试响应,但是当他们实际上传包含 LVL 的应用程序时,他们的所有用户都收到回复说他们已经未经许可的应用程序版本,而事实并非如此。

话虽如此,在我必须将其实际发布到市场之前,成功部署 LVL 的人能否告诉我测试和验证 LVL 实现是否正常工作的最佳方法(从最终用户的角度来看) ? 目前,我在市场上发布了我的旧的、非许可的应用程序版本,我所做的测试是在清单文件中使用相同的版本代码,我只将更新的 apk 加载到模拟器上并到我的手机上(即新的 apk 未上传到市场)。很抱歉偏执,但我宁愿完全删除 LVL 实现,也不愿向有效用户提供未经许可的响应。

0 投票
1 回答
1908 浏览

android - 无法在我的应用项目中引用 LVL Android 库

我正在按照http://developer.android.com/guide/publishing/licensing.html上的说明进行操作

我制作了 <sdk>/market_licensing 目录的副本,然后使用 Eclipse 中的新建项目向导从现有源创建了一个新的 Android 项目,并将其指向我的 market_licensing 副本中的库子目录。

我已经检查了 market_licensing 项目 android 属性中的“是库”框。我已将该项目添加为我的应用程序项目中的库项目。它以绿色复选标记显示在列表中。

当我保存项目设置并重建时,编译器在 LVL 项目中找不到类,当我返回应用程序的项目设置时,库列表中的条目现在有一个红色的 X 而不是绿色的复选标记。

我不明白我做错了什么,这使我无法引用 LVL 项目。有什么帮助吗?

编辑:我尝试将许可项目添加到我的应用程序项目的构建路径中,然后我能够构建,但是当我尝试运行应用程序时崩溃,因为它找不到任何库代码。很明显,许可项目的“库”状态设置不正确和/或它没有在构建时自动注入我的应用程序项目中。

0 投票
1 回答
1559 浏览

java - 一个接一个地显示一个对话框,直到许可证检查通过

我正在尝试实现 LVL(Android 许可验证库),但是当许可证检查失败时遇到了问题。我弹出一个对话框,说明许可证检查失败并用两个按钮显示它们。一个按钮是“重试”,我想立即进行另一次检查或“购买应用程序”,它将他们重定向到在应用市场上购买应用程序。

当我点击重试按钮时,我可以从日志消息中看到我的许可检查被调用,我收到另一个“不允许”回调并且我尝试再次显示上述失败对话框(我看到 onPrepareDialog() 再次被调用)。

问题是第二个对话框实际上没有显示。因此,即使许可证检查失败,用户也可以使用该应用程序。为什么没有一次又一次地弹出对话框?

我相信这是所有相关代码: