Доступ к локальному ПК ПК с подключенного к USB мобильному устройству Android

У меня есть Android-устройство (вкладка Samsung galaxy), подключенное к компьютеру через USB.

Я хочу использовать WebServices и запускать веб-страницу, которая находится на моем локальном сервере xampp моего ПК на моем устройстве Android.

Я могу добиться этого, если у меня есть как мой компьютер, так и устройство Android, подключенные к одной и той же беспроводной сети.

Однако возможно ли получить доступ к странице localhost без какого-либо беспроводного соединения, используя только USB-соединение.

(PS: Этот же сценарий работает, когда я запускаю приложение на эмуляторе и использую ip 10.0.2.2 для доступа к локальному хосту на моем ПК)

Ответ 1

Я, наконец, решил эту проблему. Я использовал Samsung Galaxy S с Froyo. "Порт" ниже - тот же самый порт, который вы используете для эмулятора (10.0.2.2:port). Что я сделал:

  • сначала подключите свое реальное устройство с помощью USB-кабеля (убедитесь, что вы можете загрузить приложение на свое устройство).
  • получить IP-адрес от подключаемого устройства, которое начинается с 192.168.x.x: port
  • откройте "Центр управления сетями и общим доступом"
  • нажмите "Подключение по локальной сети" на устройстве и выберите "Подробности"
  • скопируйте "IPv4-адрес" в свое приложение и замените его следующим образом: http://192.168.x.x:port/test.php
  • Загрузите свое приложение (снова) на свое реальное устройство.
  • перейти к свойствам и включить "USB-привязку" на
  • запустите приложение на устройстве

Теперь он должен работать.

Ответ 2

Я читал многочисленные форумы и пытался играть в приложения, но не нашел решения до сих пор.

Мой сценарий, как мне кажется, похож на ваш, но я уточню, чтобы помочь другим. У меня есть локально размещенный веб-сайт и веб-службы, которые будут использоваться моим приложением для Android. Мне нужно, чтобы это работало на дороге для демонстрации только с моим ноутбуком и отсутствием сетевого подключения.

Примечание. Использование моего iPhone в качестве точки доступа Wi-Fi и подключение моего компьютера и моего устройства Android работало, но соединение iPhone 4S медленно и регулярно выпадает.

Мое решение выглядит следующим образом:

  • Отсоедините сетевые кабели от ПК и отключите Wi-Fi.
  • Отключите Wi-Fi на устройстве Android.
  • Подключить Android к ПК через USB
  • Включите "USB Tethering" в меню Android. (В сетях- > больше...- > Модем и переносная точка доступа)
  • Получите IP-адрес вашего компьютера, который был назначен кабелем USB-троса. (откройте командную строку и введите "ipconfig", затем найдите IP-адрес, назначенный сетевым адаптером USB)
  • Откройте браузер на ПК, используя найденный IP-адрес вместо localhost для тестирования. т.е. http://192.168.1.1/myWebSite
  • Откройте браузер на Android и протестируйте его.

Ответ 3

Google опубликовал решение этой проблемы здесь.

Шаги:

  • Подключите ваше устройство Android к компьютеру для разработки с включенной отладкой по USB
  • Откройте Chrome на своем компьютере разработчика, откройте новую вкладку, щелкните правой кнопкой мыши на новой вкладке браузера, нажмите "Проверить".
  • Щелкните значок с тремя точками в правой верхней части three dots, → Дополнительные инструменты, Удаленные устройства.
  • Посмотрите на нижнюю часть экрана и убедитесь, что имя вашего устройства появилось в списке с зеленой точкой.
  • Посмотрите ниже на часть настроек, проверьте метку переадресации портов
  • Добавить правило. Например, если ваш веб-сервер python работает на вашем компьютере localhost: 5000, и вы хотите получить к нему доступ через порт 3333 вашего устройства, вы 3333 в левой части, localhost:5000 и нажимаете add rule.
  • Вуаля, теперь вы можете получить доступ к вашему веб-серверу с вашего устройства. Попробуйте открыть новую вкладку браузера и зайти на http://localhost: 3333 со своего устройства.

Ответ 4

Я сделал это на компьютере с Windows, и он отлично работает!

Включите USB-модем в своем мобильном устройстве. Введите ipconfig в командной строке на вашем компьютере и найдите ipv4 для "локального соединения локального адаптера Ethernet x" (в основном первого) Теперь перейдите в свой мобильный браузер, введите ipv4 с номером порта вашего веб-приложения. например: - 192.168.40.142:1342

Он работал с этими простыми шагами!

Ответ 5

Вот часть кода моего приложения для Android:

Это приложение может обмениваться данными с моделью HTTP get-post между сервлетом, работающим на сервере, и устройством Android, подключенным в режиме отладки по USB (поскольку приложение находилось в стадии разработки).

Я также могу запустить приложение через Wi-Fi, когда сервер Tomcat Apache 7 работает (когда разработка приложения была завершена).

enter image description here

Чтобы получить ваш IP-адрес

  1. Перейти к командной строке
  2. Введите ipconfig
  3. Нажмите ввод

В списке IPv4-адрес - ваш IP-адрес.

Ответ 6

Подключение телефона Android через кабель USB и доступ к http-серверу на компьютере.

  • Брандмауэр - отключите его, как только все будет работать, вы можете добавить правило в разделе "Правила входящего трафика" включите HTTP-сервер Apache (UDP и TCP) (или любой другой сервер HTTP, который вы используете). Предупреждение. Если вы отключите брандмауэр, ваш компьютер станет уязвимым для интернет-атак. Поэтому сначала отключите интернет и отключите от сети.
  • Подключите USB-кабель. Если появится окно сети, выберите "Домашняя сеть". Если он не всплывает, он, вероятно, настроен на публикацию (который не будет работать), поэтому перейдите в: Панель управления\Сеть и Интернет\Сеть и общий центр (в win7) и установите для нее домашнюю сеть. Это может дать вам следующий экран после того, как вы нажмете его, чтобы поделиться фотографиями, музыкой... просто нажмите на нее. На главном экране активна домашняя сеть.
  • Вам нужен IP-адрес компьютера, localhost или другие псевдонимы. Чтобы получить IP-адрес, в командной строке Windows введите ipconfig и найдите Адрес IPv4.,,,,,: 192.168. ###. ### Что IP-адрес вашего телефона дал вашему компьютеру.
  • Теперь вам нужно сделать в браузере телефона попытку доступа к тестовому html файлу с вашего компьютерного сервера, он должен выглядеть нормально.

    Для разработчиков Android, теперь в вашем коде Android вы должны использовать "http://", иначе это не сработает. Например: MyAsyncTask.execute( "http://192.168.123.123/test.html" )

Часть II - Настройка IP на фиксированный/статический.

Теперь, когда все работает, каждый раз, когда вы отсоединяете кабель и подключаете его обратно, ваш IP-адрес будет меняться. И если вы используете его где-то, как внутри кода, вам придется обновлять его каждый раз! Решение, которое я придумал, - это установить IP в статический.

  • Подключив телефон и привязав его, вернитесь в Центр управления сетями и общим доступом и щелкните по подключению к локальной сети "Подключения:"

screenshot

  1. На следующем экране выберите "Свойства", затем выделите IP 4 и нажмите "Свойства" и нажмите "Использовать следующий IP-адрес"
  2. Поместите шлюз по умолчанию и маску подсети точно так же, как и в ipconfig, и для IP-адреса измените только последние 3 цифры на что-нибудь от 1 до 255

screenshot

Этот IP-адрес будет вашим новым фиксированным/статическим IP-адресом, и он останется таким же при следующем подключении телефона.

Ответ 7

Проверьте параметры типа подключения USB. У вас должен быть один "Интернет-проход". Это позволит вашему телефону использовать то же соединение, что и ваш компьютер.

Ответ 8

Мне очень понравился ответ John, но я хотел бы дать ему некоторые изменения тем, которые хотят протестировать конфигурацию клиента/сервера, запустив клиентский TCP на подключенном к USB мобильном устройстве и сервере на локальном ПК.

Сначала совершенно очевидно, что 10.0.2.2 не будет работать, потому что это REAL аппаратное мобильное устройство, а не симулятор.

Итак следуйте инструкциям Джона:

  • Отключите все сетевые кабели на ПК и отключите Wi-Fi.
  • Отключите Wi-Fi на устройстве Android.
  • Подключить устройство Android к компьютеру через USB
  • Включите "USB-модем" (USB-модем/USB-сотовый модем /USB שימוש כמודם סלולרי) в меню Android. (В сетях- > больше...- > Модем и переносная точка доступа)

    • Это USB-соединение будет выступать в качестве DHCP-сервера для вашего единственного подключения к ПК, поэтому он назначит вашему ПК выделенный (динамический) IP-адрес в локальной сети USB. Теперь все, что вам нужно сделать, это указать клиентскому приложению этот IP-адрес и порт.
  • Получите IP-адрес вашего ПК (который был назначен кабелем USB-кабеля). (откройте командную строку и введите "ipconfig", затем найдите IP, назначенный сетевым адаптером USB, в Linux его ifconfig или Ubuntu "Информация о подключении" и т.д.)

  • Сообщайте приложению подключиться к этому IP-адресу (например, 192.168.42.87) с чем-то вроде (сторона Java-клиент):

    String        serverIP      = "192.168.42.87";
    int           serverPort    = 5544;
    InetAddress   serverAddress = InetAddress.getByName(serverIP);
    Socket        socket         = new Socket(serverAddress, serverPort);
    ...
    

    Enjoy..

Ответ 9

Здравствуйте, вы можете получить доступ к вашему xampp localhost по

  1. Панель управления ->
  2. брандмауэр Windows защитник ->
  3. Расширенные настройки (слева) → Входящие правила → Новое правило → Порт → в конкретный локальный порт, напишите свои порты Apache → далее → далее, после чего вы сможете получить доступ к локальному хосту с помощью локального ПК. Айпи адрес:

Ответ 10

Как легко получить доступ к LocalHost в Actual Android Device → Подключите ваш компьютер к устройству Android через USB

  1. Перейти к проверке Chrome нажмите "F12" или Control + Shift + C

Инструмент Chrome Inspection

  1. Проверьте нижнюю часть инструмента для проверки хрома.

  2. Теперь перейдите в настройки на вкладке "Удаленное устройство".

Вкладка "Удаленные устройства"

  1. установите флажок "Обнаружить USB-устройство", а также установите флажок "Переадресация портов".

  2. Теперь нажмите "Добавить правила", введите любой порт устройства, например (4880) и в поле "Локальный адрес" введите фактический адрес локального хоста в моем случае, например (127.0.0.1:480).

  3. После добавления правила перейдите в свою андроид-студию → внутри своего кода URL (http://127.0.0.1:4880). Не забудьте изменить порт с 480 → 4880.

  4. Перейдите на вкладку "Удаленное устройство" в Chrome и нажмите на подключенное устройство. Добавить новый URL (127.0.0.1:4880) Проверьте браузер Chrome на Android-устройстве

Проверьте браузер Actual Device Chrome и начните отладку кода на устройстве Actual Android.