2010-03-13 39 views
44

Tôi đã sử dụng phương pháp này để đạt được quyền truy cập vào internet từ giả lập Android của tôi giả lập -http-proxy <<proxy-name>> -avd <<avd_name>>Cách đặt tùy chọn Internet cho trình giả lập Android?

Nó hoạt động nhưng là cách tốt nhất để làm điều đó? Nó không cảm thấy đúng khi tôi cần mở trình giả lập từ dòng lệnh và không thể chỉ làm điều đó từ Eclipse hay gì đó.

Dường như không thể tìm thấy tùy chọn internet trên "Trình quản lý AVD".

+0

Trong trường hợp của tôi, dữ liệu di động đã không được bật trong cài đặt http://stackoverflow.com/a/21464099/1176454 – baptx

Trả lời

23

Theo mặc định, bạn có thể chuyển đổi truy cập Internet sang trình giả lập của bạn bằng F8 (trên Windows) và Fn + F8 (trên Mac OS X) - Tôi nghĩ F8 cũng hoạt động với Linux, nhưng không phải 100 % chắc chắn rồi.

Với phím tắt này, bạn nhận được ACTION_BACKGROUND_DATA_SETTING_CHANGED được gửi đi.

Hy vọng điều đó sẽ hữu ích.

+5

Khi kết nối Internet có sẵn với giả lập, F8 rất hữu ích! – MduSenthil

+0

Điều này không có hình ảnh hay bất kỳ loại phản hồi nào khác, nhưng sau khi khởi động lại trình mô phỏng (tạo lại thiết bị ảo, thực sự), nó có quyền truy cập internet. –

5

-http-proxy có thể được thiết lập trong nhật thực theo cách này:

  1. menu Window
  2. Preferences Menu con
  3. Trong Preferences Dialog Nhấn vào Android trong phần bên trái Bấm Launch gần Mặc định Emulator Options: đầu vào ur -http-proxy
+0

+1: với adt 1.7 bạn tìm thấy Android/Launch – k3b

0

Lưu ý hơi khác, tôi phải tạo một thiết bị ảo không hỗ trợ Modem GSM để internet trên trình mô phỏng của tôi hoạt động.

4

Thêm GSM Modem Hỗ trợ khi tạo AVD trong các thiết bị ảo của bạn từ Android SDK và AVD Manager ...

56

Bạn cũng có thể thử một cách rõ ràng xác định cài đặt máy chủ DNS, điều này làm việc cho tôi.

Trong Eclipse:

Window> Preferences> Android> Launch

Mặc định tùy chọn giả lập: -dns-server 8.8.8.8,8.8.4.4

+1

Nó làm việc cho tôi! – rlc

+4

điều này cố định vấn đề cho tôi, nơi giả lập sẽ chỉ nhận được mạng trên một số mạng wifi và không phải những người khác. 'giả lập -avd adv_name -dns-server 8.8.8.8.8.8.4.4' – danmayer

+1

Cảm ơn người đàn ông, nó thực sự làm việc – curiousguy

3

Nó được thiết lập DNS đã làm các trick cho tôi. Nếu bạn đang sử dụng các trình bổ sung Eclipse hoặc Netbeans, bạn có thể đặt nó thông qua các tùy chọn Trình mô phỏng mặc định, hoặc các tùy chọn Emulator tương ứng. Bạn cũng có thể sử dụng thiết lập nó từ dòng lệnh nếu bạn khởi động trình giả lập từ CLI. Trong mọi trường hợp, tùy chọn là "-dns-server x.x.x.x, x.x.x.x" không có dấu ngoặc kép. Không có tùy chọn trong gui ADB để liên kết vĩnh viễn tùy chọn với thiết bị ảo của bạn.

6

cho các hồ sơ vì đây là một bài cũ và vì không ai đề cập đến nó, kiểm tra xem bạn đã quên (như tôi đã làm) để thiết lập cờ android.permission.INTERNET trong AndroidManifest.xml như, ví dụ:

<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> 
1

xóa cái hiện có và tạo lại trình mô phỏng. Máy (windows/mac) phải có truy cập internet và giả lập android được truy cập internet theo mặc định.

1

Nếu ai đó có một Permission Internet ở AndroidManifest và vẫn có một vấn đề với kết nối Internet, có lẽ đó sẽ rất hữu ích: Android - Fixing the no internet connection issue on emulator.

Tôi đi theo bước từ trang web đó, và tất cả mọi thứ làm việc cho tôi. Điều quan trọng nhất:

  • Cấu hình máy chủ proxy trên giả lập
  • DNS sai Được sử dụng bởi các Emulator

Đó là bài viết đầu tiên của tôi, vì vậy tôi hy vọng nó sẽ rất hữu ích.

-2

Bạn có thể thực hiện việc này bằng Trình quản lý AVD, chọn Công cụ -> Tùy chọn. Đặt HTTP Proxy Server thành 8.8.8.8.8.8.4.4

Trình mô phỏng sẽ được kết nối.

+4

Đó là các máy chủ DNS của Google, không phải máy chủ proxy. – aurbano

3
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 . 
0

Tôi đã thấy các đề xuất khác nhau về cách mã có thể tìm hiểu xem nó có chạy trên trình mô phỏng hay không, nhưng không có gì là khá thỏa đáng hoặc "tương lai". Hiện tại, tôi đã quyết định đọc ID thiết bị, tất cả là 0 cho trình giả lập:

TelephonyManager telmgr = (TelephonyManager) getSystemService (Context.TELEPHONY_SERVICE); boolean isEmulator = "000000000000000" .equals (telmgr.getDeviceId());

Nhưng trên một ứng dụng được triển khai đòi hỏi phải có sự cho phép READ_PHONE_STATE

Các vấn đề liên quan