Татьяна Опубликовано 13 августа, 2019 Поделиться Опубликовано 13 августа, 2019 Почему код, который работал на Андроид 7 (проверка, есть ли Интернет; отправка get-запроса), перестал работать в Андроид 9? Это из-за разрешений? (permissions) Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 13 августа, 2019 Поделиться Опубликовано 13 августа, 2019 6 минут назад, Татьяна сказал: Почему код, который работал на Андроид 7 (проверка, есть ли Интернет; отправка get-запроса), перестал работать в Андроид 9? Это из-за разрешений? (permissions) Возможно вы отправляете запрос на http вместо https ? Запросы без шифрования теперь запрещены по умолчанию. Но это можно обойти - тут в нескольких недавних темах это обсуждалось. Ingalime и Татьяна 2 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 13 августа, 2019 Автор Поделиться Опубликовано 13 августа, 2019 5 часов назад, Евгений Корепов сказал: Возможно вы отправляете запрос на http вместо https ? Запросы без шифрования теперь запрещены по умолчанию. Но это можно обойти - тут в нескольких недавних темах это обсуждалось. да, на http. У того сайта нет https. Запрещены начиная с 9-го Андроида? Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 13 августа, 2019 Поделиться Опубликовано 13 августа, 2019 1 час назад, Татьяна сказал: да, на http. У того сайта нет https. Запрещены начиная с 9-го Андроида? Вот тут рецепт, в манифест добавьте поля, https://stackoverflow.com/questions/51902629/how-to-allow-all-network-connection-types-http-and-https-in-android-9-pie Ingalime и Татьяна 1 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 13 августа, 2019 Автор Поделиться Опубликовано 13 августа, 2019 5 часов назад, Евгений Корепов сказал: Вот тут рецепт, в манифест добавьте поля, https://stackoverflow.com/questions/51902629/how-to-allow-all-network-connection-types-http-and-https-in-android-9-pie Куча советов там. Достаточно дописать в манифест: android:usesCleartextTraffic="true" ? Евгений Корепов 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 14 августа, 2019 Автор Поделиться Опубликовано 14 августа, 2019 Теперь apk-файл вообще не создается: No resource identifier found for attribute 'usesCleartextTraffic' in package 'android' Цитата Ссылка на комментарий
0 qz5 Опубликовано 15 августа, 2019 Поделиться Опубликовано 15 августа, 2019 неправильно манифест изменили Ingalime 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 1 час назад, qz5 сказал: неправильно манифест изменили А как правильно? Я разместила в секции application: <application android:persistent="%persistent%" .............................. android:theme="%theme%" android:usesCleartextTraffic="true" android:hardwareAccelerated="%hardwareAccelerated%"> Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 или еще нужно ставить последний Android SDK и указывать путь до него в настройках среды? Цитата Ссылка на комментарий
0 qz5 Опубликовано 15 августа, 2019 Поделиться Опубликовано 15 августа, 2019 нет, я только манифест менял но возможно Вы манифест меняли обычным блокнотом например, его нао править только программами, которые не добавляют ВОМ например с помощью Notepad++ Ingalime 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 38 минут назад, qz5 сказал: нет, я только манифест менял но возможно Вы манифест меняли обычным блокнотом например, его нао править только программами, которые не добавляют ВОМ например с помощью Notepad++ Notepad++ я меняю. Сейчас удалила строку android:usesCleartextTraffic="true" и успешно скомпилировала apk-файл. Мне непонятно сообщение: No resource identifier found for attribute 'usesCleartextTraffic' in package 'android' Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 15 августа, 2019 Поделиться Опубликовано 15 августа, 2019 16 минут назад, Татьяна сказал: Notepad++ я меняю. Сейчас удалила строку android:usesCleartextTraffic="true" и успешно скомпилировала apk-файл. Мне непонятно сообщение: No resource identifier found for attribute 'usesCleartextTraffic' in package 'android' Вы где то ошиблись. Или в левой кодировке сохранили файл, или еще что. На тестовом проекте добавил - все отлично собралось. Вот мой AndroidManifest.template.xml <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="%targetSdkVersion%" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="%label%" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%" android:resizeableActivity="false" <!-- Вот сюда я добавил строчку --> android:usesCleartextTraffic="true"> <%provider%> <%application-meta-data%> <%uses-libraries%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="%activityLabel%" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) --> qz5 и Ingalime 2 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 Евгений Корепов Может, это от того, что у вас 10.3, а у меня 10.1 ? Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 15 августа, 2019 Поделиться Опубликовано 15 августа, 2019 11 минут назад, Татьяна сказал: Евгений Корепов Может, это от того, что у вас 10.3, а у меня 10.1 ? Хм. Вот тут не подскажу. 10.1 лениво ставить. Закиньте суда свой AndroidManifest.template.xml (уже отредактированный). И кстати, попробуйте прогнать его онлайн валидатором xml Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 <?xml version="1.0" encoding="utf-8"?> <!-- BEGIN_INCLUDE(manifest) --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="%package%" android:versionCode="%versionCode%" android:versionName="%versionName%" android:installLocation="%installLocation%"> <!-- This is the platform API where NativeActivity was introduced. --> <uses-sdk android:minSdkVersion="%minSdkVersion%" android:targetSdkVersion="28" /> <%uses-permission%> <uses-feature android:glEsVersion="0x00020000" android:required="True"/> <application android:persistent="%persistent%" android:restoreAnyVersion="%restoreAnyVersion%" android:label="@string/app_name" android:debuggable="%debuggable%" android:largeHeap="%largeHeap%" android:icon="%icon%" android:theme="%theme%" android:hardwareAccelerated="%hardwareAccelerated%" android:usesCleartextTraffic="true"> <%application-meta-data%> <%services%> <!-- Our activity is a subclass of the built-in NativeActivity framework class. This will take care of integrating with our NDK code. --> <activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" android:label="@string/app_name" android:configChanges="orientation|keyboard|keyboardHidden|screenSize" android:launchMode="singleTask"> <!-- Tell NativeActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="%libNameValue%" /> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <%activity%> <%receivers%> </application> </manifest> <!-- END_INCLUDE(manifest) --> Цитата Ссылка на комментарий
0 Татьяна Опубликовано 15 августа, 2019 Автор Поделиться Опубликовано 15 августа, 2019 Я так думаю, что это косяк не Delphi, а aapt.exe. Он же принимает манифест, а потом собирает пакет? [PAClient Error] Error: E2312 D:\Projects\8\Android\Release\aquery\AndroidManifest.xml:20: error: No resource identifier found for attribute 'usesCleartextTraffic' in package 'android' Цитата Ссылка на комментарий
0 Татьяна Опубликовано 16 августа, 2019 Автор Поделиться Опубликовано 16 августа, 2019 А есть способ править манифест внутри среды Delphi? Цитата Ссылка на комментарий
0 Tumaso Опубликовано 16 августа, 2019 Поделиться Опубликовано 16 августа, 2019 @Татьяна внутри среды манифест не поправить. Можно только изменить малую часть параметров, и не более того Ingalime 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 17 августа, 2019 Автор Поделиться Опубликовано 17 августа, 2019 Есть еще какой-нибудь способ? Как-нибудь добавить в манифест разрешенные домены? Цитата Ссылка на комментарий
0 Tumaso Опубликовано 17 августа, 2019 Поделиться Опубликовано 17 августа, 2019 Манифест можно править руками, в любом текстовом редакторе Ingalime 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 17 августа, 2019 Автор Поделиться Опубликовано 17 августа, 2019 2 часа назад, Tumaso сказал: Манифест можно править руками, в любом текстовом редакторе Нет, я не про редактирование манифеста как такового, а про редактирование его таким образом , чтобы в 9-м Андроиде с http работал. Цитата Ссылка на комментарий
0 Татьяна Опубликовано 21 августа, 2019 Автор Поделиться Опубликовано 21 августа, 2019 Есть еще идеи, как заставить Андроид 9 работать с http? Help me please! Цитата Ссылка на комментарий
0 Евгений Корепов Опубликовано 21 августа, 2019 Поделиться Опубликовано 21 августа, 2019 31 минуту назад, Татьяна сказал: Есть еще идеи, как заставить Андроид 9 работать с http? Help me please! На будущее - при создании темы указывайте все исходные данные (как минимум вашу версию среды), что бы люди не давали вам советы, а потом уже узнали советы для какой версии среды они вам нужны. Я поставил Берлин и попробовал - ничего не получилось, результат такой же как у вас. Разбираться времени нет. Вот вам варианты: 1. Постарайтесь избавится от http и перейти на https. В наше время почти не возможно найти сайт http, даже самые отсталые госслужбы перешли на https на своих порталах. Если это ваш сервер, то я могу проконсультировать по способам перевода его на https. 2. Перейдите на Delphi 10.3.2. 3. Сделайте на каком нибудь другом сервере прокладку между запросами приложения по https и запросами к вашему серверу по http. Ingalime и Татьяна 1 1 Цитата Ссылка на комментарий
0 Татьяна Опубликовано 22 августа, 2019 Автор Поделиться Опубликовано 22 августа, 2019 Выражаю Евгению Корепову благодарность за высокопрофессиональную помощь! Евгений Корепов 1 Цитата Ссылка на комментарий
0 A_l_ex Опубликовано 29 июня, 2021 Поделиться Опубликовано 29 июня, 2021 (изменено) Если кто-то когда-то столкнется с подобной проблемой, обязательно добавляйте в манифест эту строчку, она спасет Вам дни или Недели тупого бездумного кодинга, в надежде понять почему TWebBrowser не в силах отобразить фрейм(iframe в котором как оказалось потом есть обращение к HTTP). А вы сидите на Андройде 8.1 или ниже а заказчик например на 9 и выше. Изменено 29 июня, 2021 пользователем A_l_ex Добавление описания Ingalime 1 Цитата Ссылка на комментарий
Вопрос
Татьяна
Почему код, который работал на Андроид 7 (проверка, есть ли Интернет; отправка get-запроса), перестал работать в Андроид 9?
Это из-за разрешений? (permissions)
Ссылка на комментарий
24 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.