• 0
Авторизация  
Alex7wrt

Переход на новую модель разрешений

Вопросы

Добрый день

Знаю, что с ноября в Google Play можно обновлять приложения только для TargetSDK не ниже 26. Но до этого момента этой функцией я не пользовался, оставляя в Манифесте все по дефолту, то есть и minSDK и targetSDK равны 14.

Понятно, что от этого никуда не уйти, но в связи с этим меня больше всего интересует вопрос, если я обновлю приложение с targetSDK равным 26 или 27, смогут ли это приложение установить новые пользователи?

При загрузке версии в Google Play появляется предупреждение, но из него ответ конкретно на мой вопрос не ясен.

1080568717_.PNG.7a35cc5b277b79c2b9b4f1d40ad99b2e.PNG

На данный момент около 25% пользователей, ежедневно устанавливающих данное приложение,  имеют SDK 22 (Android 5.1) и ниже. И меня интересует, смогут ли такие пользователи устанавливать версию приложения, если я обновлю его до targetSDK 26 или 27?

И также, есть ли разница, если выставить targetSDK 26 или 27?

 

P.S. В данном приложении не используются никакие разрешения. Только доступ в интернет

Изменено пользователем Alex7wrt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 1

@Alex7wrt,

конечно смогут. Минимально допустимая версия указывается в minSdkVersion. У меня например во всех приложениях установлено <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="26" />

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Спасибо за ответ.

Правильно ли я вас понял, что ваши приложения с TargetSDK 26 именно устанавливают новые пользователи с Android 5.1 и ниже, а не обновляют уже установленное приложение?
И как насчет TargetSDK 26 или 27 - будет ли разница в этом плане?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 2

@Alex7wrt,

устанавливают в том числе и новые пользователи на старых версиях андроида, и у них работает. minSdkVersion для этого.

Что касается targetSDK, то этим значением приложение уведомляет операционку, что возможно будет использовать api вплоть до данной версии. targetSDK 27 пока не использовал, только 26, и все что надо работает.

В самом коде делаю анализ текущей версии SDK, и в зависимости от нее возможно делаю дополнительные действия. Вот например, работа с правами:

    {$IFDEF ANDROID}
      // для Android 6+ требуется дополнительная работа с правами
      if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then
      begin
        if (TAndroidHelper.context.checkSelfPermission(
             StringToJString(PERMISSION_FILE_READ)
             ) = TJPackageManager.JavaClass.PERMISSION_DENIED)
          or (TAndroidHelper.context.checkSelfPermission(
               StringToJString(PERMISSION_FILE_WRITE)
               ) = TJPackageManager.JavaClass.PERMISSION_DENIED) then
        begin
          // необходимо запросить разрешение на использование галереи
          LIsWaitPermissions := True;
          TAndroidHelper.Activity.requestPermissions(
            CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]),
            BUTTON_FILE
            );
        end;
      end;
    {$ENDIF}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Если кому-то потребуется, то код для C++, как я сделал

   _di_JActivity activity = TAndroidHelper::Activity;
   TJavaObjectArray__1<_di_JString> *Recipients = new TJavaObjectArray__1<_di_JString>(1);
	Recipients->Items[0] = StringToJString("android.permission.READ_EXTERNAL_STORAGE");
	Recipients->Items[1] = StringToJString("android.permission.WRITE_EXTERNAL_STORAGE");

  activity->requestPermissions(Recipients,0);

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Для Android 8 версии не срабатывает правило 

TAndroidHelper.Activity.requestPermissions

Как решать, кто в курсе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 28.09.2018 в 21:46, Tumaso сказал:

@Alex7wrt,

устанавливают в том числе и новые пользователи на старых версиях андроида, и у них работает. minSdkVersion для этого.

Что касается targetSDK, то этим значением приложение уведомляет операционку, что возможно будет использовать api вплоть до данной версии. targetSDK 27 пока не использовал, только 26, и все что надо работает.

В самом коде делаю анализ текущей версии SDK, и в зависимости от нее возможно делаю дополнительные действия. Вот например, работа с правами:


    {$IFDEF ANDROID}
      // для Android 6+ требуется дополнительная работа с правами
      if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then
      begin
        if (TAndroidHelper.context.checkSelfPermission(
             StringToJString(PERMISSION_FILE_READ)
             ) = TJPackageManager.JavaClass.PERMISSION_DENIED)
          or (TAndroidHelper.context.checkSelfPermission(
               StringToJString(PERMISSION_FILE_WRITE)
               ) = TJPackageManager.JavaClass.PERMISSION_DENIED) then
        begin
          // необходимо запросить разрешение на использование галереи
          LIsWaitPermissions := True;
          TAndroidHelper.Activity.requestPermissions(
            CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]),
            BUTTON_FILE
            );
        end;
      end;
    {$ENDIF}

 

Можно по подробнее??

TAndroidHelper.Activity.requestPermissions(
            CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]),
            BUTTON_FILE
            );

В этом месте у меня AV выскакивает.

Delphi XE 10.2 Tokyo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

@MrAnderson,

у меня в проекте используется custom activity вместо стандартного (т.е. в AndroidManifest.template.xml вместо com.embarcadero.firemonkey.FMXNativeActivity указано com.embarcadero.firemonkey.CustomActivity и используется дополнительный jar в качестве реализации).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
5 часов назад, MrAnderson сказал:

Можно по подробнее??


TAndroidHelper.Activity.requestPermissions(
            CreateJavaStringArray([PERMISSION_FILE_READ, PERMISSION_FILE_WRITE]),
            BUTTON_FILE
            );

В этом месте у меня AV выскакивает.

Delphi XE 10.2 Tokyo

Еще раз ссылку на KastriFree дать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу