Ответ 1
Вы также можете попробовать явно указать настройки DNS-сервера, это сработало для меня.
В Eclipse:
Window > Preferences > Android > Запуск
Параметры эмулятора по умолчанию: -dns-сервер 8.8.8.8.8.8.4.4
Я использую этот метод для доступа к Интернету с моего эмулятора Android
эмулятор -http-proxy <<proxy-name>> -avd <<avd_name>>
Это работает, но это лучший способ сделать это? Мне просто не кажется, что мне нужно открыть эмулятор из командной строки и не просто сделать это из Eclipse или что-то в этом роде.
Кажется, что не найти интернет-вариант в "AVD Manager".
Вы также можете попробовать явно указать настройки DNS-сервера, это сработало для меня.
В Eclipse:
Window > Preferences > Android > Запуск
Параметры эмулятора по умолчанию: -dns-сервер 8.8.8.8.8.8.4.4
По умолчанию вы можете переключать доступ в Интернет к вашему эмулятору с помощью F8 (в Windows) и Fn + F8 (в Mac OS X). Я думаю, что F8 также работает для Linux, но я не на 100% уверен.
С помощью этого ярлыка вы получите ACTION_BACKGROUND_DATA_SETTING_CHANGED.
Надеюсь, что это поможет.
для записей, поскольку это старый пост, и, поскольку никто не упоминал об этом, проверьте, не забыл ли вы (как и я) установить флаг android.permission.INTERNET в AndroidManifest.xml как, например:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.webviewdemo">
<uses-permission android:name="android.permission.INTERNET"/>
<application android:icon="@drawable/icon">
<activity android:name=".WebViewDemo" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
-http-proxy может быть установлен в eclipse следующим образом:
Добавить поддержку GSM-модема при создании AVD в ваших виртуальных устройствах с Android SDK и AVD Manager...
Это настройка DNS, которая сделала трюк для меня. Если вы используете плагины Eclipse или Netbeans, вы можете установить его через параметры эмулятора по умолчанию или параметры эмулятора соответственно. Вы также можете использовать его из командной строки, если вы запустите свой эмулятор из CLI. Во всех случаях опция "-dns-server x.x.x.x, x.x.x.x" без кавычек. В ADB gui нет возможности постоянно связывать этот параметр с вашим виртуальным устройством.
Hi me also faced same issue , solved using below steps:
cause 1:
Add internet permission in your android application
<uses-permission android:name="android.permission.INTERNET"/>
**cause 2:
Check the manually your default application is able access internet or not
if not its problem of your emulator , check in your internet connection in your pc
try below method to connect net in your pc
try explicitly specifying DNS server settings, this worked for me.
In Eclipse:
Window>Preferences>Android>Launch
Default emulator options: -dns-server 8.8.8.8,8.8.4.4**
cause 3:
check : check if you are using more than one internet connection to your pc like one is LAN second one is Modem ,
so disable all lan or modem .
удалите существующее и заново создайте эмулятор. Машина (windows/mac) должна иметь доступ в Интернет, а эмулятор Android по умолчанию получает доступ в Интернет по умолчанию.
Если у кого-то есть интернет-разрешение в AndroidManifest и все еще есть проблема с подключением к Интернету, возможно, это будет полезно: Android - Фиксирование проблемы с подключением к Интернету на эмуляторе.
Я пошел за шагом с этого сайта, и все работает для меня. Самое главное:
Это мой первый пост, поэтому я надеюсь, что это будет полезно.
В несколько иной заметке мне пришлось создать виртуальное устройство без поддержки GSM-модема, чтобы интернет на моем эмуляторе работал.
Я видел различные предложения о том, как код может узнать, работает ли он на эмуляторе, но ни один из них не является вполне удовлетворительным, или "перспективным". На данный момент я решил прочитать идентификатор устройства, который является всеми нулями для эмулятора:
TelephonyManager telmgr = (TelephonyManager) getSystemService (Context.TELEPHONY_SERVICE); boolean isEmulator = "000000000000000".equals(telmgr.getDeviceId());
Но в развернутом приложении, для которого требуется разрешение READ_PHONE_STATE
Вы можете сделать это с помощью AVD Manager, выберите Инструменты → Параметры. Установите HTTP-прокси-сервер в 8.8.8.8.8.8.4.4
Эмулятор будет подключен.