Opening a URL in the AndroidTV emulator does not work, works fine on my AndroidTV box - android-emulator

I have made a small AndroidTV app that can query a rest api and present the content that it returns. This works without any issues when I am running the app on my Nexus Player with AndroidTV 7 (API 25).
To be able to work on the app, when I'm commuting I would like to be able to develop using the AndroidTV emulator. But when I run my app in the emulator I cannot access my api endpoints.
The emulator does have internet connectivity. In the AndroidTV emulator the "Videos" leanback sample is pre-installed. And that can access the internet and fetch the images from their endpoints.
The code I'm using currently looks like this:
final URL url1;
HttpURLConnection urlConnection = null;
try {
url1 = new URL(url);
urlConnection = (HttpURLConnection) url1.openConnection();
urlConnection.setUseCaches(true);
urlConnection.addRequestProperty("Cache-Control", "only-if-cached");
int maxStale = 60 * 60 * 10; // tolerate stale time in seconds
urlConnection.addRequestProperty("Cache-Control", "max-stale=" + maxStale);
return urlConnection.getInputStream();
} finally {...}
If I use the Google Videos sample resource URL's as input to the above code, I am able to fetch their resources, also when run in the emulator.
Requesting data from my own rest endpoint (also publicly available on the internet) gives a FileNotFoundException.
The urls that cause the exception can be access from my host machine without any problems.
One of the sample resources from the Videos leanback sample is this one:
http://commondatastorage.googleapis.com/android-tv/Sample%20videos/Demo%20Slam/Google%20Demo%20Slam_%20Extra%20Spicy/bg.jpg
The code above can fetch this resource without any problems both when running on the Nexus Player, and in the Emulator.
But it seems as though I cannot fetch resources from other domains than the googleapis.com domain.
I have checked and updated all Android tools to the latest versions. Including platform tools and system images.
I have also tried deleting all AVDs I had that might be outdated and created new ones - but no success.
I am starting the AVD with the "-dns-server 8.8.8.8,8.8.4.4" argument so that it should be able to do DNS lookups.
I might be mistaken, but it seems like the googleapis.com addresses have been whitelisted in the emulator somehow.
Is there some place or setting where I can whitelist my own URL, or similar way that I can get access to my api on the internet when running in the emulator?

Try to check the proxy on emulator settings. Another common issue: check the date/time of emulator. If old, then SSL will not work.

I forgot to update this.
It turned out to be a bug in the Android Emulator. Google fixed it about 6 months after the issue was reported. Or I guess they fixed it earlier than that, but it was not released to the public until 6 months later.

Related

Bluestacks version 2 - network problem: Some Applications internet connection not work

Hy, I use use Bluestacks version 2. Because my pc is low-end PC. I also try to use Bluestacks ve4rsion 4 & 5 but at the end it get stuck when loading. So I leave to use it. Then I try to use Bluestacks version 2. It works smoothly but I face a problem. Only specific app internet connection works like - Google play store and Browser but when I try to use external app or google play store app when I need to use internet connection on the app but the internet connection not work. On the other hand, Browser or Google play store net connection still work fine. Please someone help me to solve this.

Unable to connect Samsung S10 to charles proxy

With device manual proxy to my Charles IP address, not seeing any traffic or prompt to allow traffic in Charles Proxy. S10 device appears to load all traffic when navigating to various URLs.
Even charlesproxy.com/ssl loads website but doesn't initiate a certificate to download.
All other android devices tested on same setup works fine. Issue seems specific to Samsung S10
So what seemed to have worked for me just now, with my mac (I assume it would be something similar for Windows) I just opened a regular browser, went to chls.pro/ssl and download the certificate file.
From there I sent it to my S10+ and opened it, which then installed it properly.
If you're trying to hook up to Android devices then beware that Google introduced security measures to not allow proxy monitoring in I believe Android 6 or 7. If the other devices you had worked fine on Android then it's probably because you were using an earlier version of Android, or, you had a debug build that allowed for proxy monitoring. I know there's a SO post somewhere that talks about this "pinning" and I know our company does this as well with debug apk's. If neither of those solutions work then it's probably a matter of getting the Charles certificate installed correctly on that phone but without more information it is hard to diagnose. Hope this helps you

network connectivity issue on google play console

I am trying to access an app i uploaded on play store through google play console on windows and every time there is network issue. I cleared the cached files and cookies. i restarted everything.It's still not working on any browser(chrome, Firefox, int Exp). I tried on an emulator and my phone and it's working there. But
i want to access it on my computer.

MoPub GDPR SDK - how to test?

Hi I am setting up the MoPub GDPR Android SDK, am getting a call to the consent dialog page on the web but get this response :
05-16 11:10:46.469 13030-13152/ E/Volley: [18308] BasicNetwork.performRequest: Unexpected response code 400 for https://ads.mopub.com/m/gdpr_consent_dialog
This means "Bad Request" and that the call is corrupt I think. Has anyone got this call to work ?
This isn't an ideal solution, but it works.
On your test device install a VPN service app, there are lots of free ones available out there. If you're running in an emulator (or a device without Google Play) you can goto one of the many APK mirror sites to download and sideload the APK directly.
I won't get into the obvious risks of using VPNs, or sideloading apks outside of google play, but if you're paranoid just spin up an emulator to test this.
It's important the service offers VPN servers located in countries affected by GDPR.
Enable the VPN service on your device/emulator and make sure you're using a server located in a GDPR country (Germany, for example). Load up the app your testing, and it should now appear that you are accessing
Not sure why Pete is suggesting a VPN here. But it appears I was getting this error because I forgot to replace the AD_UNIT_ID in the SdkConfiguration.Builder with my Ad Unit ID.

android emulator net access stopped after some minutes of working

While working with my app that require network access...
The Android 2.2 emulator's network connection stop working...
The net was working properly but after some time it did not respond on emulator,
while it was working f9 on my system...
I have cross checked the net connections and restarted with the emulator(even created a new avd ). But the problem remains same my net is not working on emulator..
I have also checked the connection with F8 key on emulator...
My app manifest net permission is enabled....
Finally After all I have myself found the solution of to the problem:
It's very common problem that must have been faced by most of android developers....
Recently, while developing an Android Application, I was faced with a situation that wasted 2 hours of my time. The issue was simple, my app was not able to access internet from the Android Emulator.
Initially I thought fixing the issue should have been straight forward, but life is not always that simple.
So what was the real issue because of which my app was not able to access internet? There are multiple reasons because of which this issue could occur. Hence, I decided to document my findings so that other could benefit from it.
There are two main symptoms of no internet connection on android emulator.....
**Only your app is not able to access the internet
**None of the apps are able to access the internet
Lets look at what are the reasons behind each of them.
Only your app is not able to access the internet
If only your app is not able to access the internet on the emulator, check if any other apps are able to access the internet or not. For e.g. you could open up the browser application, visit http://news.google.com/. If the page opens up correctly then problem lies in your app itself and its simple to fix.
Basically, your app needs the Permission to access the internet. This can be done by adding the following line just before the end of tag in AndroidManifest.xml file of your application.
Compile and re-install the app in the emulator and try to access the internet from your app. It should work!
What is the use of uses-permission tag:
Android application can request certain permissions so that they can function properly. Some examples of permissions are, get users location, make a call, access the internet etc. App has to explicitly specify this in the AndroidManifest.xml.
When end users install such an app on their device, the android OS will notify the user that, app is requesting certain permissions. If users are fine with that, then only the app will be installed. Else users can deny the permission and the app will not be installed.
This mechanism is Androids way of implementing security and users privacy!
This is the more tricky situation:
None of the apps are able to access the internet
Now this situation is tricky. There are two reasons because of which this could happen
Proxy server is not configured on the emulator
Incorrect DNS used by the emulator
Setting Up the DNS Server:
emulator.exe -avd 'android1.6' -dns-server 8.8.8.8
The android1.6 is your avd name I created an avd with name android1.6
So just replace android1.6 with your avd name.
Run this code in command prompt after setting the path to tools & platform tools of your android sdk