安卓最低SDK版本和最高SDK版本设置

6

我有一个应用程序,我只想在ICS上安装。因此,我已经将最小和最大SDK版本设置如下。

<uses-sdk android:minSdkVersion="14" android:maxSdkVersion="15" />

理想情况下这应该可以工作。但是一些方式它也能够安装在Jellybean版本上。 ICS (API 14-15) Jellybean (API 16-18)

我在这里缺失了什么?请帮忙。


我只想让它安装在ICS上,而不是JB上,因此最大值设置为15。我的应用在JB上有一些问题。在我解决这些问题之前,我不希望用户在JB上安装。 - tntv
2个回答

5
根据文档

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

此行为属于正常现象。但是,如果您要发布到Google Play,那么应用程序将会被筛选。
除非您有一些绝对需要较旧API的功能(飞行模式可能是其中之一),否则这种限制没有多大意义。
如果您担心非Google Play来源或用户侧载应用程序,则始终可以运行时检查Android版本,并限制功能或关闭应用程序。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLYBEAN){
   //do something about the Android version being too new
}

请记住,如果您希望您的应用程序达到最大的用户基础,那么您必须在某个时刻解决由新的Android版本引起的问题。


那么,难道没有任何方法可以限制我的应用程序只能在ICS上安装,而不能在其他Android版本上安装吗? - tntv
1
@tntv 你可以始终对Android版本进行运行时检查,并关闭应用程序/限制功能。如果您要发布到Google Play,由于它会考虑Android版本并根据maxSdkVersion进行限制,所以不必太担心侧载,这不是您的问题。 - A--C

1
根据maxSdkVersion文档
未来的Android版本(Android 2.0.1之后)将不再在安装或重新验证期间检查或执行maxSdkVersion属性。然而,当向用户展示可供下载的应用程序时,Google Play将继续使用该属性作为过滤器。
从Google Play筛选仍将起作用,但您可以将应用程序侧载到任何具有高于最低SDK版本的设备上。

那么难道没有办法限制我的应用只能在ICS上安装,而不能在其他任何Android版本上安装吗? - tntv

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接