Android Honeycomb 3.2 обнаруживает соединение MTP через USB - PullRequest
3 голосов
/ 25 августа 2011

Я видел другие сообщения об обнаружении USB-соединения, но они не говорили конкретно о MPT, а просто о более общем обнаружении, поэтому я решил спросить конкретно о MTP.

Я подключаю свойУвеличьте изображение на компьютере через USB, и я хочу, чтобы мое приложение записало файл, когда установлено соединение MTP.Когда USB отключен и сервер MTP остановлен, я хочу записать другой файл.

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

Я видел некоторые упоминания в списке на android.developer, такие как:

ACTION_MEDIA_SHARED

ACTION_UMS_CONNECTED

ACTION_UMS_DISCONNECTED

но они используются для запоминающего устройства USB, а Xoom поддерживает MTP, а не запоминающее устройство USB.

Это должно быть возможно, когда вы видите выход logcat, когда USB-соединение регистрируется вместе с запуском и остановкой MTP-сервера.

D / Vold (85): USB отключен

D / Tethering (155): InitialState.processMessage what = 4

D / Tethering (155): sendTetherStateChangedBroadcast 0, 0, 0

D / MtpService (2674): остановка MTPсервер

D / Tethering (155): sendTetherStateChangedBroadcast 1, 0, 0

D / Tethering (155): interfaceAdded: usb0

D / MtpService (2674): addStorageLocked65537 / mnt / sdcard

D / MtpService (2674): запуск MTP-сервера

D / MtpService (2674): addStorageLocked 65537 / mnt / sdcard

D / Vold (85): USB-соединение

Кто-нибудь знает, как мне достичь своей цели?Даже возможность обнаружить USB-соединение / отключение, вероятно, будет работать для меня, хотя, как я видел в некоторых других сообщениях, это кажется невозможным.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 20 июля 2012

Мне было интересно то же самое, и я нашел альтернативу:

Я проверяю состояние батареи.Существует намерение под названием ACTION_BATTERY_CHANGED, которое вызывается, когда происходит событие на батарее.В этом намерении есть несколько дополнительных полей, содержащих некоторую информацию.Одной из них является EXTRA_PLUGGED:

Indicating whether the device is plugged in to a power source; 0 means it is on battery, other constants are different types of power sources.

Другими константами являются BATTERY_PLUGGED_AC и BATTERY_PLUGGED_USB

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

Чтобы узнать, отключен ли смартфон, вам необходимо проверить, когда значение EXTRA_PLUGGED изменяется с BATTERY_PLUGGED_USB на 0

1 голос
/ 11 апреля 2013

Слушайте эту трансляцию android.hardware.usb.action.USB_STATE Я проверил ее, и она работает с устройством с поддержкой PTP или MTP.есть дополнительное логическое «подключено», которое сообщит вам, подключен ли USB-кабель или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...