提供额外的媒体资源(图形/声音)作为 Google Play 应用内计费项目

2024-04-14

在我通过 Google Play 提供的 Android 应用程序中,我想提供可以通过应用程序内结算购买的其他项目。

我想要提供的项目类型是媒体内容,例如图形和声音,这些内容通常会进入res应用程序的文件夹。

当然,问题是这些资源必须受到保护。在其文档 http://developer.android.com/google/play/billing/billing_best_practices.html,谷歌建议不要将内容存储在应用程序包内,而是在购买商品后获取密钥,然后将密钥发送到远程服务器,在远程服务器上检查密钥,如果成功,则提供图形/声音下载到该应用程序。

从安全角度来看,这听起来不错。但如果我这样做,我就无法像正常访问资源那样轻松地使用内容。例如,如果用户可以获得额外的背景 PNG,我就不能使用R.drawable.new_background但必须以编程方式解码位图,对吧?

那么,是否有通过应用内计费下载额外媒体内容的替代方案或最佳实践?

我想说,既然每个有足够决心的人都可以对代码进行逆向工程,无论如何,为什么不只将内容存储在应用程序内部,而是进行严格的检查用户是否可能使用该内容。


答案在一定程度上取决于您的具体问题,根据您的问题,可能是以下 1 或 2:

1) 我担心有人能够使用我的资源within我的应用程序无需付费,或者

2) 我担心用户 (either一个已经付款的人,or一个拥有not付费)将删除我的资源并使用它们outside my app.

您的问题似乎没有指出另一种可能性(但其他人已尝试解决)是:

3) 我担心我的初始 APK 下载太大,因为下载了大量资源,而用户只决定使用其中的一些资源。

如果您唯一关心的是第 1 项,那么您可以像平常一样存储资源,但在您的应用程序内,拒绝加载/使用您尚未收到应用内付款的任何资源。这当然是最简单的方法。

如果您关心的是第 2 项,那么您只需在 APK 的原始文件夹中包含一个加密的二进制存档,并在该资源被授权(例如通过付款)供应用程序使用时从中解码该资源。正如其他人所指出的,就处理器负载而言,这并不是什么大问题,而且它确实提供了一些防止意外盗窃的保护。当然,如果您正在与那些破坏您的加密并窃取您的资源的“创意抄袭者”矛盾修辞者打交道,那么总会有版权法。

如果您关心的是第 3 项,那么您将需要一个可以检索您的项目的外部服务器。 在应用程序外部实施此类存储时,Google App Engine 是一种流行的托管选择。您只想将任何购买/下载的资源缓存在应用程序自己的外部文件夹中的加密存档中(由 getExternalFilesDir() 返回),然后按照上面第 2 项中的方式读取和解密它。当您的应用程序被卸载时,此类文件将被自动删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提供额外的媒体资源(图形/声音)作为 Google Play 应用内计费项目 的相关文章

  • onBeaconServiceConnect 未调用

    和以前一样 我使用 Android Beacon 库 它已经工作了 我可以通过 BLE 低功耗蓝牙找到信标 但是现在 更新到最新版本的库后 现在方法onBeaconServiceConnect 不再跑了 请告诉我我需要做什么才能让它发挥作用
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • 带有一、二和三个按钮的 Android 警报对话框

    我不经常发出警报 但每次发出警报时 我都会花一些时间来阅读文档 https developer android com guide topics ui dialogs html并弄清楚如何去做 由于我现在不得不这样做几次 所以我将在下面写一
  • 播放 SoundCloud 曲目

    我可以在 Android 应用程序中播放 SoundCloud 中的曲目吗 我正在尝试这段代码 但它不起作用 String res https api soundcloud com tracks 84973999 stream client
  • 如何在android上的python kivy中关闭应用程序后使服务继续工作

    我希望我的服务在关闭应用程序后继续工作 但我做不到 我听说我应该使用startForeground 但如何在Python中做到这一点呢 应用程序代码 from kivy app import App from kivy uix floatl
  • 从 React Native Js 代码调用 Android Native UI 组件方法

    我创建了一个 CustomView SignatureView java 它扩展了 LinearLayout 以捕获 Android Native 中的签名 并创建了SignatureCapturePackage java和Signatur
  • 如何在React Native Android中获取响应头?

    您好 我想在获取 POST 请求后获取响应标头 我尝试调试看看里面有什么response with console log response 我可以从以下位置获取响应机构responseData但我不知道如何获取标题 我想同时获得标题和正文
  • 如何解决 Firebase AuthUi 中无法找到显式活动?

    使用 firebase UI 时 我无法找到显式活动类 com firebase ui auth KickoffActivity protected void onCreate Bundle savedInstanceState super
  • 如何在android线性布局上获得阴影? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在android中为View设置阴影 https stackoverflow com questions 4406524 how to set shadow to a view in androi
  • 如何为发布而不是调试创建密钥库?扑

    我按照使用此网站部署 flutter 的步骤进行操作https flutter io android release https flutter io android release 当我运行 flutter build apk 时出现此错
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • 在游戏视图下添加 admob

    我一直试图将 admob 放在我的游戏视图下 这是我的代码 public class HoodStarGame extends AndroidApplication Override public void onCreate Bundle
  • HERE 地图:更改路线已行驶部分的颜色

    导航时可以改变路线的颜色吗 具体来说 我希望路线中已行驶的部分的颜色与即将行驶的部分的颜色不同 现在都是同一个颜色 将 MapRoute 对象的 TravelColor 变量设置为透明对我来说很有效 mapRoute color Resou
  • 有关 ListView 自定义行布局项目上的 onClick() 事件的帮助

    我有一个 ListView 其行由我格式化 每行都有 ImageView 和 TextView 的混合 我还实现了自己的适配器 并且能够通过它绘制每一行 现在 我想要这样的东西 用户单击 ImageView 不是行上的其他任何位置 但只有此
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • Android:AsyncTask ProgressDialog 将不会在 ActivityGroup 中打开

    我试图在轮询我的服务器时打开一个进度对话框 该类是一个 ActivityGroup 因为它嵌套在选项卡栏中 为了将视图保持在框架内 需要 ActivityGroup 这是我的 ActivityGroup 类的声明 public class
  • 如何在基本活动中使用 ViewBinding 的抽象?

    我正在创建一个基类 以便子级的所有绑定都将设置在基类中 我已经做到了这一点 abstract class BaseActivity2 b AppCompatActivity private var viewBinding B null pr
  • 获取其他指针的MotionEvent.getRawX/getRawY

    我可以获取其他指针的MotionEvent getRawX getRawY 值吗 MotionEvent getRawX API 参考 http developer android com reference android view Mo
  • 如何在片段中实现 onBackPressed() 和意图?

    我知道 onBackPressed 是活动中的一种方法 但是 我想在片段中使用该功能 以便当按下后退按钮时 它会通过 Intent 重定向到另一个活动 有什么办法解决这个问题吗 public class News Events fragme
  • Android 材料芯片组件崩溃应用程序。无法膨胀 xml

    Tried Chip来自两个支持库的组件 com google android support design 28 0 0 rc01和材料 com google android material material 1 0 0 rc01 堆栈

随机推荐