Я видел другие сообщения об обнаружении USB-соединения, но они не говорили о MPT конкретно и просто более общее обнаружение, поэтому я решил, что я спрошу конкретно о MTP.
Я подключаю свой Xoom к компьютеру через 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): addStorageLocked 65537/mnt/sdcard
D/MtpService (2674): запуск сервера MTP
D/MtpService (2674): addStorageLocked 65537/mnt/sdcard
D/Vold (85): USB-соединение
Кто-нибудь знает, как я могу достичь своей цели? Даже способность обнаруживать USB Connected/Disconnected, вероятно, будет работать для меня, хотя, как я видел в некоторых других сообщениях, это не представляется возможным.
Спасибо!