BugTraq.Ru
Русский BugTraq
https://bugtraq.ru/lj/archive/2011/1306.2151.html

синхронизаторское
13.06.11 21:51 // оригинал
Пришла пора поворчать на андроид. Насколько в айпаде все прозрачно и ненавязчиво со всякими обновлениями, насколько тут все криво. Маркетный софт, конечно, обновляется, но это нужно держать фоновую синхронизацию и включенный wifi, что убивает батарею меньше чем за день. Настроил профиль для подключения/отключения при зарядке wifi и фонового пожирателя батареи - кривовато, но, по крайней мере, не нужно об этом помнить. Получилась практически имитация старого доброго винмобайла, в котором при подключении по usb сразу приходил и интернет.

С синхронизацией с аутлуком тоже не без нюансов. MyPhoneExplorer в принципе всем хорош, только вот с распознаванием подключения у него полная беда - то ли отключение autorun в семерке тому виной, то ли еще что, но после подключения телефона к usb его нужно пинать вручную, что несколько напрягает - я как-то привык, что такая ерунда происходит сама собой без моего участия. Android-Sync вроде должен работать как положено, но он уж очень в глухой бете, за которую еще вдруг стали просить деньги. А без денег он синхронизировал только 20 контактов, причем криво, с неправильным порядком полей.

Так что решил докрутить MyPhoneExplorer. К счастью, его можно пнуть из командной строки, чтоб полез подключаться. Осталось отловить момент, когда пинать. Полез в Event Viewer, в Microsoft/Windows/DriverFrameworks-UserMode/Operational нашлось подходящее событие, Completed a Pnp or Power operation c id 2101. Проблема в том, что оно приходит на подключение любого устройства - вплоть до флешки, а при связи с ним задачи в Task Manager'е фильтрация id устройства не предусмотрена. На помощью пришел старый добрый devcon c командой find. Тут тоже не без приключений, errorlevel он при отсутствии результатов поиска не меняет, так что пришлось парсить результат, но закончилось все полной победой (даже дважды, сначала на перле, потом из принципа на голом cmd, только пришлось поискать, как в переменную окружения запихнуть stdout, cmd это вам не bash, тут все как в наручниках).

Если вдруг интересно, сделано это так:

Запускается команда cmd /c c:\wintools\devcon.exe find "USB\VID_0BB4&PID_0C02&MI_01" | c:\batch\htc.cmd, где htc.cmd выглядит как

@echo off
set /p res=
if "%res%"=="No matching devices found." goto end
"C:\Program Files (x86)\MyPhoneExplorer\MyPhoneExplorer.exe" action=sync flags=noerrmsg syncitem=multi
:end

   
теги: android  |  обсудить  |  все отзывы (0)  |  обсудить в LJ [2186]
назад «  » вперед

аналогичные материалы
прогнознофатальное // 12.03.12 11:13
прогнозное // 12.03.12 01:13
андроидносихнронизаторское // 13.10.11 15:29
андроидное // 16.07.11 18:38
шайтан-байда // 12.06.11 00:46
miuiшное // 11.06.11 14:21
айпадноандроидночитальное // 03.06.11 01:15
андроидное // 31.05.11 16:41
клавиатурное // 14.01.11 17:19
тудушное // 14.01.11 01:54
 
последние записи
асусноапгрейдное // 23.06.19 22:29
айпаднофлешное // 17.06.19 21:39
отпускное // 09.06.19 22:12
берлинскоавтобусное // 29.05.19 19:57
онлайноголосовальное // 29.05.19 14:35
геймофтронное // 18.05.19 17:54
бироуминговое // 15.05.19 19:02
регистрационнонервное // 08.05.19 00:41
праздничное // 01.05.19 12:18
роумингоинтернетное // 30.04.19 20:12



  Copyright © 2001-2019 Dmitry Leonov Design: Vadim Derkach