0

在我的应用程序中,我有两组设计。一种设计适用于 2.1 和 2.2 的 android 设备版本,另一种设计适用于 2.3 及更高版本的设备。

现在的问题是我在清单文件中采用如下构建设置

<uses-sdk android:minSdkVersion="7" /> 
      <uses-sdk android:maxSdkVersion="8" />

我的 androidproject properties被设置为2.2. 当我在 2.3.4 设备中运行此构建时,它会正常运行。它是如何发生的?

我计划在市场上提交包含多个 apk 文件的应用程序。如何阻止我的应用程序一个构建在 2.1 和 2.2 中运行,另一个构建在 2.3 及更高版本中运行

我只是尝试设置<uses-sdk android:minSdkVersion="7" /> or <uses-sdk android:maxSdkVersion="7" />or <uses-sdk android:maxSdkVersion="8" /> or <uses-sdk android:targetSdkVersion="8" />然后它也在 2.3.4 设备的所有设备中运行

请朋友们帮帮我....

4

4 回答 4

3

嘿,根据android文档:

Introduced in: API Level 4

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

你可能想看看这个链接的最后几行

编辑1:

Also have a look at the Warning 

警告不建议声明此属性。首先,无需将属性设置为阻止将应用程序部署到新版本 Android 平台上的方法,因为它们已发布。根据设计,该平台的新版本完全向后兼容。您的应用程序应该在新版本上正常工作,前提是它只使用标准 API 并遵循开发最佳实践。其次,请注意,在某些情况下,声明该属性可能会导致您的应用程序在系统更新到更高的 API 级别后从用户的设备中删除。大多数可能安装您的应用程序的设备都会通过无线方式接收定期系统更新,因此您应该在设置此属性之前考虑它们对您的应用程序的影响。

于 2012-03-17T05:50:45.497 回答
2

根据文档:

Android 的未来版本(Android 2.0.1 之后)将不再在安装或重新验证期间检查或强制执行 maxSdkVersion 属性

http://developer.android.com/guide/topics/manifest/uses-sdk-element.html#max


或者,您可以在运行时检查 API 版本并阻止使用您的应用程序。 http://developer.android.com/reference/android/os/Build.VERSION.html

于 2012-03-17T05:50:27.353 回答
1

您可以使用 adb 安装它,也可以通过网站直接下载 apk。

minSdk 和 maxSdkVersion 仅在从 Android 市场安装时检查。版本超出此范围的设备将不会在市场上看到您的应用程序。

于 2012-03-17T05:53:40.340 回答
0

您需要将 PackageManager 类用于版本特定的应用程序。有一个方法被调用getPackageInfo(),它返回一个对象PackageInfo。从中PackageInfo,您可以获取版本名称和代码的值。

现在你有了值,所以使用逻辑并实现它

于 2012-03-17T05:52:54.037 回答