Что делать, если я хочу выпустить обновление с более высоким minSDK, чем на рынке? - PullRequest
5 голосов
/ 11 февраля 2011

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

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

1 Ответ

4 голосов
/ 11 февраля 2011

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

Если вы хотите добавить функции, которые используют более высокий уровень 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
     }

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...