Что делать, если я хочу опубликовать обновление с более высоким значением minSDK, чем тот, который представлен на рынке?

Я выпустил приложение на рынке с minSDK, установленным на 4 (Android 1.6), но теперь я хочу опубликовать обновление с функциями, недоступными в 1.6, поэтому мне нужен более высокий minSDK .

Итак, мой вопрос: будут ли пользователи, работающие с 1.6, получать уведомление об этом обновлении? … и если да, они смогут загрузить / установить его?

Нет, они не должны быть уведомлены об обновлении. Рынок будет фильтровать приложение вместе, и они больше не смогут его видеть или получать обновления.

Если вы хотите добавить функции, которые используют более высокий уровень api, но не исключают пользователя с более низким уровнем api, вы можете использовать некоторое отражение, чтобы включить это:

public static Method getExternalFilesDir; try { Class<?> partypes[] = new Class[1]; partypes[0] = String.class; getExternalFilesDir = Context.class.getMethod("getExternalFilesDir", partypes); } catch (NoSuchMethodException e) { Log.e(TAG, "getExternalFilesDir isn't available in this devices api"); } 

Этот фрагмент кода говорит:

В Context.class я получил этот метод getExternalFilesDir (уровень API 9)

Если это так, создайте переменную getExternalFilesDir как отражающий вызов этого метода, оставите ее равной нулю.

Затем вы можете просто сделать

  // If the user's device is API9 or above if(getExternalFilesDir != null){ // Invoke is basically the same as doing Context.getExternalFilesDir(var1, var2); getExternalFilesDir.invoke(variable1, variable2); } else { // User cannot use this method do something else } 

надеюсь, это поможет