android emulator net access stopped after some minutes of working - android-emulator

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

Related

Cannot create a work profile The security policy prevents the creation of a managed device because a custom os is or has been installed on this device

I have 5000 devices enrolled with EMM using android management API and recently I am getting issues with multiple devices out of nowhere and getting and error prompt after scanning the QR code on re-enrollment. All of my enrolled devices are Samsung Tab with the older version of android(7-9) and the issue doesn't seem to be related to the android version. Also, The issue has been experienced for the device which was earlier enrolled and was working fine but recently has this issue, we tried re-enrolling it but it gives us the same following error prompt after QR scan.
Cannot create a work profile - The security policy prevents the
creation of a managed device because a custom os is or has been
installed on this device
For your kind information, there is no custom os installed on the device and the device is not rooted or bootloader is not unlocked. I have researched a lot over the internet but cannot find a solution to the problem I have tried following approaches but it doesn't seem to work in my case
To fix this, you will need to update the time on the device by either connecting to wifi or cellular data (insert SIM-card), or by manually changing it in the set-up screen. After this is done you will be able to provision the device.
Tried DPC Identifier method for enrollment, When prompted to sign in on fresh factory reset device, enter afw#setup, which downloads Android Device Policy. Scan a QR code or manually enter an enrollment token to provision the device.
None of the above seems to work for me, I have also seen that its an issue related to Samsung Knox version, so can anyone from Samsung or google help me debugging and solving this issue, will removing the Knox app from the device work in my case.
Eagerly awaiting for the response as most of my device has started getting affected with this issue, please let me know your thoughts and resolution on this.
Not sure if that's an option for you as you have multiple devices, but on my single device, manually downloading and installing "google apps device policy" resolved the issue.
Been a lurker for a while and posting for the first time
Work as IT helpdesk and found a fix for us (context below)
We use Azure, InTune and Samsung Knox
Needing to assign a Knox profile so an application installs and runs
How we fixed this
Unassigned Knox profile
Ran tablet normally, skipping setup of Google, Samsung account and security
Running Samsung updates until current (24th Feb 2021)
Reassign the Knox profile
Factory resetting through settings
run through the setup process
Error has stopped at this point
You can either use Wi-Fi or SIM Card Data for OS updates through Knox
I had the same problems and this is how i fixed it. I have Samsung Tablet Android 10 and need to set it up under Enterprise.
Straight out of the box, you expand the OS, set up Network connection and than type in the google gmail space: afw#mobicontrol. This Does Not install the custom OS. Once expanded the OS has all the bloated software in tact plus the Mobicontrol app. I kept getting an error 'Can't Create Work Profile because Custom OS is installed on this device'. I did a factory reset but did so by powering it off than using the Power Button and Up Arrow to force it to the Android Recovery Screen. There is a factory reset option to choose from. "This Does Not Work". It still keeps the bloated software in tact.
You need to expand the Android OS first than do a reset. Go to SETTINGS. than ABOUT. at bottom is a RESET option. Choose that. Choose Factory Reset. This will delete all those apps. It reboots. Now you can enter afw#mobicontrol at the google email screen and it will install the custom OS and works under Soti.
Reset From the SETTINGS and do a Factory Reset. Than type in AFW#MOBICONTOL and the custom OS will work.

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

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.

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

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.

Running Instagram on AVD

I wanted to use Instagram on my computer, so I decided to use an Android Virtual Device for that task.
I downloaded the Android SDK and the newest apk for instagram for my computer.
Then I created a new AVD and ran it. After it was booted, I installed the instagram apk using adb install instagram.apk.
It installed smoothly and after clicking the app, it started.
Now here's my problem: From there on nothing works.
When I try to login and I press the login button, nothing happens like there would be no internet connection.
Browsers and other apps using an internet connection work just fine, just instagram doesn't work.
How can I fix this?
I think it has something to do that the android Emulator can't really handle a global proxy.
Therefore hostnames get resolved directly to their IP which violates HTTP 1.1 standarts and the request doesn't get send properly.
To fix this, it is needed to change it so the hostname gets send instead of the IP.
You should try creating an AVD with different settings. More RAM and allowing GPU emulation is a good idea. If you insist on using an AVD and you have an appropriate intel CPU then you can make the emulator run much faster by following these steps. They are a bit complicated, but worth it if you want the emulator to run quicker.
I typically try to avoid using the Android emulator while I am developing apps. It has its uses, but it tends to be slow and doesn't have all of the capabilities of actual devices.
As an alternative to using an AVD, I would recommend downloading and installing BlueStacks. BluesStacks was written from the ground up to allow running Android apps on your Windows PC or Mac. I have used it before and it does a great job. Much better than an AVD.
Try visual studio emulator for android. Instagram works on it with enabled and connected wifi. This emulator works better than BlueStacks.