如何确保我的应用程序无法安装在Marshmallow上

时间:2015-10-15 14:10:20

标签: android google-play android-6.0-marshmallow target-sdk

在android gradle构建文件中,我有以下闭包:

android {
compileSdkVersion 21
buildToolsVersion "23.0.1"

defaultConfig {
    applicationId "com.mycoolapp"
    minSdkVersion 16
    targetSdkVersion 21
    versionCode 41
    versionName "3.0"
}
}

我不希望我的应用程序在Marshmallow上运行。我的targetSdkVersion是21,Marmallow是23。所以想象我有一个Marshmallow手机,如果我去Play商店我的应用程序会出现在列表中吗?

我的第二个问题是如何阻止我的应用在Google Play商店中出现棉花糖设备?

3 个答案:

答案 0 :(得分:3)

  

所以想象一下,我有一个Marshmallow手机,如果我去Play商店,我的应用程序会出现在列表中吗?

  

如何阻止我的应用在Google Play商店中出现棉花糖设备?

我们欢迎您在清单的android:maxSdkVersion元素中尝试<uses-sdk>,因为the current documentation建议Play商店将其用作过滤器,但这会对用户造成损失谁将他们的应用程序升级到Android 6.0。

答案 1 :(得分:2)

回答不是原始问题,而是原因。

我不确定你是否必须这样做。

  

api 23要求运行时权限。所以,如果我有一个运行23的设备,并且因为android是向后兼容的,例如,如果即时通讯使用apache httpClient,它会在marshmallow中被删除

您仍然可以使用HTTP客户端。 From the docs

  

要继续使用Apache HTTP API,必须首先在build.gradle文件中声明以下编译时依赖项:

android {
    useLibrary 'org.apache.http.legacy'
}

我尝试安装在Android 6.0上使用HTTP Client的旧应用程序。它们仍然有效,没有build.gradle中的依赖,甚至没有重新编译。

  

或者我是否准备好处理运行时权限?在这种情况下,我的应用程序不会中断吗?

应用程序不会中断。如果您不在Marshmallow(targetSdkVersion 23或更高版本)下编译您的应用,那么它将在&#34; legacy&#34; mode:安装前将请求权限。有一个例外:用户仍然可以在设置中关闭权限;我不认为很多用户会这样做。

在模拟器或真实设备中试用您的应用。我几乎肯定它会在Marshmallow下工作。

答案 2 :(得分:0)

我认为如果我们将api定位到23

,应用程序运行时权限模型中描述它将起作用

注意:本课程介绍如何在针对API级别23或更高级别且在运行Android 6.0(API级别23)或更高级别的设备上运行的应用上实施权限请求。如果设备或应用程序的targetSdkVersion为22或更低,系统会在用户安装或更新应用时提示用户授予所有危险权限。

link:https://developer.android.com/intl/es/training/permissions/requesting.html

如果我有一些误解,请通知我