android - 如何让一个应用程序不被 Android KitKat 用户下载?

标签 android android-4.4-kitkat google-play

我在 Android 中开发了一个应用程序。它适用于除 KitKat 用户之外的所有用户。当我在 Play 商店上传此应用程序时,我希望 KitKat 用户无法下载此应用程序。即使当我在我的系统中执行这个应用程序时,它也在检测 KitKat 手机。我曾尝试在 Android list 文件中使用 android:maxSdkVersion="18",但这是不可能的。

有什么办法吗?

最佳答案

这取决于你到底想要什么。根据documentation对于已弃用的 maxSdkVersion:

Android 的 future 版本(超过 Android 2.0.1)在安装或重新验证期间将不再检查或强制执行 maxSdkVersion 属性。但是,在向用户提供可供下载的应用程序时,Google Play 将继续使用该属性作为过滤器。

因此,用户仍然可以旁加载该应用,但对于该级别以上的用户,它不会出现在 Google Play 中。这听起来像你想要的。没有办法(自 2.0.1 起)完全禁用侧载。

关于这个note about compilation :

...and the SDK will not compile if maxSdkVersion is set in an app's manifest.

我有疑问。在刚刚测试之后,我的 Eclipse/ADT 可以在设置 maxSdkVersion=15 的情况下编译得很好。所以我不会为此担心。

关于 targetSdkVersion 的答案对某些事情来说是好的,但如果你使用的是在较新的 API 中被故意破坏/改变的东西,它们将根本不起作用。例如,再多的兼容模式也不允许 4.2+ 从非 root 应用程序中以编程方式打开/关闭飞行模式。它也不会改变 SecureRandom 的新实现。

如果应用程序真的因为删除了关键功能而对 4.4 完全无用,请尝试使用 maxSdkVersion。使用已弃用的方法总是让我觉得不好,但如果他们不提供任何类型的功能替代,有时它是唯一的选择。

就像 http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max 中所说的那样,设置 maxSdkVersion 确实会在 Google Play 中对其进行过滤,因此该级别以上的设备不会看到它。不过,这是唯一检查它的地方。侧载仍然是可能的。

您将遇到的唯一真正问题是人们升级他们的操作系统。如果他们从 Play with 4.3 下载它,然后升级到 4.2,该应用将无法正常运行。

对于那些用户(和侧加载器),您可能希望在启动时进行版本检查。如果他们检查失败,优雅地告诉他们在对话中发生了什么,等等。比无形的“它不再起作用了!”要好得多。

但是,如果您可以通过改变完成方式来解决这个问题,那将是迄今为止最好的解决方案。

谢谢。

关于android - 如何让一个应用程序不被 Android KitKat 用户下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278293/

相关文章:

android - 如何防止操作栏选项卡显示为下拉列表?

android - Android 4.4出现的ImageReader如何使用?

android - 什么会导致溢出菜单项无缘无故被截断/省略?

java - Android 上均匀间隔按钮

android - 定期轮询后端 API 一定次数 - Retrofit & RxJava

android - 使用以下命令时,Android资源链接失败:buildFeatures {viewBinding = true}

android - 在 Android 4.4 中,BluetoothChat 应用程序在 onDestroy() 时崩溃

android - 无法从 Android Marketplace 在 Motorola Xoom 上安装应用程序

android - 用于访问调用者号码的 READ_CALL_LOG 替代方法?

android - 当我已经手动安装旧版本的 apk 时,Google Play 不显示 "Update"功能