Android - aplikace nefunguje na skutečném telefonu, ve virtuálním funguje (Rest API přes http)
Dobrý den,
pomocí návodu pro vývoj na androidu jsem zprovoznil RestAPI aplikaci s Volley library v Android studio.
Aplikace přístupuje na web Rest API pod lokální IP adresou přes http takto http://192.168.5.22 , nepotřebuji https, je to pouze zatím vývojová verze.
Testuji to přes AVD na virtuálním stroji s API 24 - Nougat - Android 7.0 (+ i Android 8 Oreo). Tam vše funguje. Když to pustím na skutečném telefonu, který má android 9 a dalším s android 10, tak to nefunguje - nedostanu se k datům.
Pokud použiji starší telefon s android 4.4 kitkat, tak aplikace funguje - dostanu přes rest api výpis dat.
Nevím co s tím, myslel jsem si, že je problém s oprávněním, ale to mám nastavené správně v AndroidManifest.xml :
< uses-permission android:name="android.permission.INTERNET" / >
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" / >
Prosím o pomoc, jsem na tom zaseknutý už několik dnů, šel jsem na to i tak, že jsem myslel, že musím řešit na novějším androidu tzv Runtime permissions, ale to vypadá na špatnou cestu. Dle všeho se na androidu o práva k internetu žádat nemusí - měla by to mít každá android aplikace automaticky když je to definováno v AndroidManifest.xml .
Díky za pomoc
Dobrý den,
celý problém s přístupem k internetu jsem vyřešil nakonec velice jednoduše, ale problém bylo najít řešení.
Přidal jsem do android manifestu jeden řádek:
A aplikace funguje.
Co jsem se dočetl, tak toto se musí nastavit pokud má cílový webový server pouze protokol http a nikoliv zabezpečený https.... Zavedeno to bylo od verze Android 9... Show english version
pomocí návodu pro vývoj na androidu jsem zprovoznil RestAPI aplikaci s Volley library v Android studio.
Aplikace přístupuje na web Rest API pod lokální IP adresou přes http takto http://192.168.5.22 , nepotřebuji https, je to pouze zatím vývojová verze.
Testuji to přes AVD na virtuálním stroji s API 24 - Nougat - Android 7.0 (+ i Android 8 Oreo). Tam vše funguje. Když to pustím na skutečném telefonu, který má android 9 a dalším s android 10, tak to nefunguje - nedostanu se k datům.
Pokud použiji starší telefon s android 4.4 kitkat, tak aplikace funguje - dostanu přes rest api výpis dat.
Nevím co s tím, myslel jsem si, že je problém s oprávněním, ale to mám nastavené správně v AndroidManifest.xml :
< uses-permission android:name="android.permission.INTERNET" / >
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" / >
Prosím o pomoc, jsem na tom zaseknutý už několik dnů, šel jsem na to i tak, že jsem myslel, že musím řešit na novějším androidu tzv Runtime permissions, ale to vypadá na špatnou cestu. Dle všeho se na androidu o práva k internetu žádat nemusí - měla by to mít každá android aplikace automaticky když je to definováno v AndroidManifest.xml .
Díky za pomoc
ODPOVĚĎ
Dobrý den,
celý problém s přístupem k internetu jsem vyřešil nakonec velice jednoduše, ale problém bylo najít řešení.
Přidal jsem do android manifestu jeden řádek:
android:usesCleartextTraffic="true"
A aplikace funguje.
Co jsem se dočetl, tak toto se musí nastavit pokud má cílový webový server pouze protokol http a nikoliv zabezpečený https.... Zavedeno to bylo od verze Android 9... Show english version