Настройка usb в телефоне

12 причин, почему телефон не видит USB и подключенные устройства

Настройка usb в телефоне

Через разъем для подключения кабеля USB в современном смартфоне проводится сразу несколько операций: зарядка устройства, соединение его с компьютером для передачи файлов или использования в качестве web-камеры, подключение внешнего USB-накопителя. Разберемся, почему телефон не видит USB-шнур.

Что нужно сделать до проверки телефона?

Как только вы обнаружили проблему, необходимо сделать несколько действий:

  1. Зайти в общие настройки и скорректировать их. Вам необходимо найти пункт «Отладка по USB» и активировать его. Обычно он располагается в разделе дополнительных настроек «для разработчиков».
  2. Перезапустите устройство и попробуйте снова активировать подключение через USB.
  3. Если раньше у вас не было проблем с подключением, а сейчас оно пропало, то возможно причина в установленных приложениях или сбоя программного обеспечения. В этом случае необходимо сделать откат настроек к заводским. Эта процедура производится через меню настроек или через режим Recovery.

Попасть в последний можно во время перезагрузки устройства, нажав клавишу питания и уменьшения звука (в некоторых моделях устройств могут применяться иные способы перехода, другие комбинации клавиш).

В том случае, если проблема при помощи этих действий не решилась, вам нужно найти причину, почему телефон не видит подключение USB. В зависимости от того, что привело к сбою, необходимо предпринимать действия.

Основные причины отсутствия подключения через USB к ПК и их решение

Подключение к компьютеру может оказаться неудачным из-за проблем в телефоне и в самой машине. Приведем основные причины, почему телефон не видит ПК через USB:

  1. Не работает USB-вход компьютера. В этом случае достаточно попробовать подсоединить смартфон к другому входу, лучше всего выбрать тот, что располагается на задней части компьютера. У новых смартфонов проблема возникает, если вы подключаете их к USB менее чем 2.0.
  2. Причина в самом кабеле – он низкого качества или переломан. В этом случае неисправность устранится сразу после замены проводника.
  3. Проверьте, прочно ли вставлены штекеры с обеих сторон. При недостаточном соединении передача данных и зарядка не будет активирована.
  4. Работа самого порта на смартфоне некорректна – в этом случае компьютер не обнаружит устройство, даже зарядка батареи не начнется. Это самая частая причина, почему телефон не видит USB-кабель. Порт со временем расшатывается из-за частой эксплуатации, контакты с платой нарушаются. В лучшем случае спасти может припаивание порта.
  5. Соединение не начинается из-за перегруженности устройства программами. В этом случае оно запустится с задержкой или экран настройки вовсе не появится. Такая ситуация корректируется путем удаления ненужных программ, чтобы увеличить быстродействие смартфона.

Также стоит проверить и сам компьютер. Если он исправен, то стоит ознакомиться с причинами, почему телефон не видит внешний USB-накопитель. Возможно решение своей проблемы вы найдете среди них.

Как поступить, если телефон не видит USB-флешку через OTG?

Вход для подключения USB можно использовать также для подключения модема и внешнего накопителя. В этом случае причиной сбоя может быть:

  1. Отсутствие в устройстве возможности поддержки режима OTG. Эта одна из самых популярных причин, почему телефон не видит USB-модем. Прежде всего возможность подключения периферийных устройств зависит от версии Android OC, она была реализована только на версиях выше 4.0. Также производитель может не заложить устройство поддержку технологии On-The-Go, при ней телефон подает питание на накопитель, которое его активирует. Проверить, работает ли ваш смартфон с этой возможностью можно при помощи приложения USB OTG Checker. Его можно скачать в Play Market, если приложение указывает, что устройство несовместимо, то подключать флешки и модемы к нему нельзя.
  2. Несовместимая файловая система накопителя. В этом случае необходимо отформатировать его в exFAT или FAT32. Только после этого можно подключать его через OTG-кабель и работать с файлами накопителя.
  3. Недостаток питания. Это еще одна популярная причина, почему телефон не видит флешку USB. В этом случае он просто подает недостаточную мощность для ее корректной работы. Специалисты рекомендуют в этом случае попробовать использовать хаб, который восполнит недостаток питания.
  4. Неисправен разъем, повреждены его контакты, отвечающие за передачу данных. В этом случае зарядка устройства может производится в обычном режиме, а вот подключение стороннего накопителя или соединение с компьютером будет недоступно. Решить проблему можно только в сервисном центре.
  5. Поврежден сам кабель для подключения сторонних устройств. Попробуйте заменить его на новый, чтобы исключить эту неисправность.
  6. Сгорел контроллер питания OTG. В этом случае даже при использовании хаба вы не сможете восполнить недостаток питания. Решается эта проблема только в сервисном центре.

Прежде чем решать проблему, почему телефон не видит USB-накопитель, необходимо сделать следующее:

  • проверить возможность подключения OTG;
  • заменить кабель на тот, который точно работает;
  • отформатировать накопитель в совместимой файловой системе.

Не забудьте перезагрузить устройство и попробовать подключить модем или флешку снова. Если и в этот раз попытка не увенчалась успехом, то стоит обратиться к специалистам сервисного центра.

Теперь вы знаете о всех причинах, по которым подключение USB телефон не обнаруживает. В большинстве случаев проблему решить своими силами не получится, вам потребуется обращаться к специалистам.

Без их помощи не обойтись, если смартфон перестал заряжаться. Поделитесь этой статьей с друзьями, чтобы и они знали, как поступать при проблемах с USB-подключением.

Если у вас остались вопросы или вы хотите рассказать о своем опыте использования этой возможности смартфона, то пишите комментарии под статьей.

Если вы не нашли в статье ответ на свой вопрос, задайте в сервисе “Вопросы и ответы”. Уведомление об ответе обязательно придет к вам на почту. Отвечают авторы и другие читатели!

Источник: https://SmartBobr.ru/poleznosti/telefon-ne-vidit-usb/

Работа с устройствами USB в Android

Настройка usb в телефоне

В недавней статье на Geektimes в х возник вопрос о поддержке в ОС Android периферии, подключенной к шине USB. Действительно, большинство вендорского ПО, к примеру, для работы с принтерами и МФУ, поддерживает только подключение по сети.

Однако это не означает, что в самой ОС Android нет такой возможности — это означает лишь то, что большинство устройств не имеют полноценного USB хоста, и далеко не все имеют поддержку OTG. По сети же могут работать абсолютно все без исключения.

Большинство устройств на Android при наличии порта OTG поддерживают на уровне системы (ядра Linux или стандартных компонентов Android) следующие классы устройств:

  • Устройства ввода — клавиатуры, мыши, джойстики (HID)
  • Накопители (Mass Storage)

Несколько реже:

  • Сотовые модемы
  • Сетевые адаптеры
  • Вебкамеры

Хабы поддерживаются при наличии полноценных хост-портов, но не поддерживаются на портах OTG. Подробнее список устройств, поддерживаемых на уровне ядра Linux, можно получить в sysfs:

$ ls /sys/bus/usb/drivers

Если же модуль в принципе доступен в исходниках ядра Linux, но не включен в Android — не стоит рассчитывать на то, что его получится собрать и расставить на все целевые системы.

Однако, начиная с Android 3.1 (API 12), в системе содержатся средства, достаточные для поддержки на уровне приложения любой USB периферии. Данные средства описаны в разделе USB Host руководства по Android API. Здесь же я хочу привести примеры реальной работы с некоторыми видами устройств.

Права доступа

Как и для прочих действий, Android требует, чтобы приложение получило разрешение на доступ к USB периферии.

Существует 2 способа получить такое разрешение:

  • Задекларировать список устройств в AndroidManifest
  • Явно показать пользователю диалог “разрешить”

Поскольку для моих задач лишние вопросы к пользователю были нежелательны, я использовал первый способ. Итак, нам необходимо добавить в манифест следующее: … А в res/xml/device_filter.

xml вписать следующее: Отмечу, что хотя общепринято указывать VID:PID в 16-ричной системе счисления, здесь они должны быть указаны в десятичной. В документации заявляется, что возможно указание только класса, без VID и PID, но у меня это не стало работать.

Принтеры

На примере принтера я покажу, как непосредственно использовать API android.hardware.usb. На уровне передачи данных все принтеры поддерживают стандартый класс USB устройств: int UsbConstants.USB_CLASS_PRINTER = 7; Класс предельно простой. В рамках этого класса устройство должно поддерживать:

  • Обязательный bulk out endpoind для отправки данных на принтер
  • Опциональный bulk in endpoind для получения статуса принтера
  • 3 управляющих запроса

int GET_DEVICE_ID = 0;int GET_PORT_STATUS = 1;int SOFT_RESET = 2; Код, приведенный ниже, предоставляет функциональность, аналогичную устройству /dev/usb/lp в Linux. Далее нам нужен фильтр, преобразующий исходный документ в пакет данных, понятный конкретной модели принтера. Но это тема иной статьи. Как один из вариантов — можно собрать ghostscript с помощью NDK. Для работы с устройством нам в первую очередь нужно: 1. Найти устройство. В примере для простоты я ищу первый попавшийся: UsbDevice findDevice() { for (UsbDevice usbDevice: mUsbManager.getDeviceList().values()) { if (usbDevice.getDeviceClass() == UsbConstants.USB_CLASS_PRINTER) { return usbDevice; } else { UsbInterface usbInterface = findInterface(usbDevice); if (usbInterface != null) return usbDevice; } } return null;} UsbInterface findInterface(UsbDevice usbDevice) { for (int nIf = 0; nIf < usbDevice.getInterfaceCount(); nIf++) { UsbInterface usbInterface = usbDevice.getInterface(nIf); if (usbInterface.getInterfaceClass() == UsbConstants.USB_CLASS_PRINTER) { return usbInterface; } } return null;}UsbDevice mUsbDevice = findDevice();UsbInterface mUsbInterface = findInterface(mUsbDevice); 2. Получить endpoint’ы: for (int nEp = 0; nEp < mUsbInterface.getEndpointCount(); nEp++) { UsbEndpoint tmpEndpoint = mUsbInterface.getEndpoint(nEp); if (tmpEndpoint.getType() != UsbConstants.USB_ENDPOINT_XFER_BULK) continue; if ((mOutEndpoint == null) && (tmpEndpoint.getDirection() == UsbConstants.USB_DIR_OUT)) { mOutEndpoint = tmpEndpoint; } else if ((mInEndpoint == null) && (tmpEndpoint.getDirection() == UsbConstants.USB_DIR_IN)) { mInEndpoint = tmpEndpoint; }}if (mOutEndpoint == null) throw new IOException("No write endpoint: " + deviceName); 3. Непосредсвенно открыть устройство: mConnection = mUsbManager.openDevice(mUsbDevice);if (mConnection == null) throw new IOException("Can't open USB connection:" + deviceName);mConnection.claimInterface (mUsbInterface, true); 4. После этого мы можем читать и писать в устройство: public int read(final byte[] data) throws IOException { int size = Math.min(data.length, mInEndpoint.getMaxPacketSize()); return mConnection.bulkTransfer(mInEndpoint, data, size, getReadTimeout());} public int write(final byte[] data, final int length) throws IOException { int offset = 0; while (offset < length) { int size = Math.min(length - offset, mInEndpoint.getMaxPacketSize()); int bytesWritten = mConnection.bulkTransfer(mOutEndpoint, Arrays.copyOfRange(data, offset, offset + size), size, getWriteTimeout()); if (bytesWritten

Источник: https://habr.com/ru/post/277093/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.