Можете ли вы ограничить запуск/загрузку приложения из магазина googlePlay для конкретной версии Android API?

Итак, у меня есть одна проблема с приложением, над которым я работаю и которое планирую выпустить, но проблема возникает только в одной версии Android SDK (версия 4.1.1 API 16).

Могу ли я ограничить загрузку и запуск моего приложения JUST Android версии 4.1.1 API 16?

Я знаю, что в googlePlay есть список определенных устройств, но проблема возникает из-за версии ОС, а НЕ из-за устройства, по крайней мере, так кажется из-за отладки...

Я также знаю, что в файле манифеста есть атрибуты uses-sdk:

<uses-sdk android:minSdkVersion="integer"
          android:targetSdkVersion="integer"
          android:maxSdkVersion="integer" />

Но установка android:minSdkVersion на 17 будет слишком высокой и недоступной для многих пользователей. Я также много работал над тем, чтобы сделать приложение обратно совместимым и отлично работает на устройствах до 3.0, это просто версия Android 4.1.1. API 16, который вызывает у меня проблемы...

Пожалуйста помоги! Благодарю вас!

Изменить: это мой текущий файл использования SDK в манифесте моих приложений:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

Изменить с соответствующим кодом:

//button listener for the number buttons. Each button will display a number 1 - 10
//upon clicking the button the number that is displayed on the button will be
//added to what is displayed in the textView
//
//mCurrentWorkingText is the current expression that is being added updated.
View.OnClickListener genericNumberButtonListener = new View.OnClickListener() {

    @Override
    public void onClick(View v) {
    //cast the incoming view to a textView so we can get
    //the text the button displays
        TextView textView = (TextView) v;
        String textFromButton = textView.getText().toString();

        if (mCurrentWorkingText.length() == 0) {
            mWorkingTextView.setText(mWorkingTextView.getText()
                    .toString().concat(textFromButton));
            mCurrentWorkingText = textFromButton;
        } else {
                    // if the working TextView isn't zero we need to
                    // append
                    // the
                    // textFromButton to what is already there.
                    mWorkingTextView.setText(mWorkingTextView.getText()
                            .toString().concat(textFromButton));
                    mCurrentWorkingText = mCurrentWorkingText
                            .concat(textFromButton);


        }
    }
};

Редактировать с журналом проблем: введите здесь описание изображения

Строка меняется почти случайным образом на совершенно случайное число в последнем операторе журнала.


person Sakiboy    schedule 13.01.2014    source источник
comment
Как насчет описания проблемы? Вероятно, есть исправление.   -  person Simon    schedule 13.01.2014
comment
Согласен с Саймоном здесь, часто бывают исправления для конкретной версии, которые могут быть программно запущены с помощью Build.VERSION.SDK_INT, вам лучше искать это, а не выбирать простой путь здесь;)   -  person Alex Vulaj    schedule 13.01.2014
comment
Исправление было бы отличным, но я перепробовал почти все... Вот проблема: у меня есть представление с пользовательскими кнопками в диапазоне от 0 до 10 и textView, которое отображает текст кнопок после нажатия на конкретный кнопка. Довольно часто при нажатии на кнопки число, которое было введено и отображено, просто меняется случайным образом на совершенно случайное другое число. Пример: TextView отображает 1777238. Затем я нажимаю 4, чтобы добавить его к строке textViews, но строка textViews изменяется на почти случайное число, например 533323455. Любая помощь приветствуется!   -  person Sakiboy    schedule 13.01.2014
comment
Это очень похоже на вашу ошибку, и я предполагаю, что версия ОС - отвлекающий маневр. Разместите соответствующий код. Мне действительно трудно представить, что ошибка ОС Android настолько катастрофична, что вызывает симптомы, которые вы описываете.   -  person Simon    schedule 14.01.2014
comment
Обновлен код прослушивателя кнопки, который добавляет номер, отображаемый кнопкой, к textView.   -  person Sakiboy    schedule 14.01.2014
comment
Я предполагаю, что могла быть ошибка в функции concat выпуска одной платформы. Попробуйте создать свои объекты String без использования этого метода (просто соедините их вручную с помощью + или используйте StringBuffer/Builder) и посмотрите, исчезнет ли проблема.   -  person Colin M.    schedule 14.01.2014
comment
Я только что переключился на использование StringBuilder. Я все еще сталкиваюсь с той же проблемой, и это сводит меня с ума... Я собираюсь жестко закодировать кнопки для каждого числа, может быть, проблема с получением текста с кнопки?...   -  person Sakiboy    schedule 14.01.2014


Ответы (2)


Вы можете запретить запуск приложения.

И нет, вы не можете запретить загрузку приложения, если оно находится на API между minSDKVersion и maxSDKVersion/targetSDKVersion.

Вы можете проверить это следующим образом:

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD &&         android.os.Build.VERSION.SDK_INT <= android.os.Build.VERSION_CODES.HONEYCOMB) {
 
 // For gingerbread but lesser than HONEYCOMB, show a dialog or something and close the app
 finish();

}
person Dheeraj Bhaskar    schedule 13.01.2014

Итак, проблема, с которой я столкнулся, была вызвана pageTransformer, который я использовал. Android 4.1.1 это очень не понравилось. Я не знаю почему, но все, что я знаю, это то, что если вы используете pageTransformer с пользовательскими представлениями и ActionBarSherlock, вам лучше быть осторожным при использовании pageTransformer для добавления анимации к перелистыванию страниц.

person Sakiboy    schedule 22.01.2014