Смартфон и планшет - подключены к компьютеру - PullRequest
0 голосов
/ 11 ноября 2011

Есть ли способ определить, подключен ли смартфон или планшет (iOS или Android) к компьютеру?

Либо перспектива телефона / планшета (т.е. isConnectedToComputer), либо перспектива компьютера (то есть connectedDevices) было бы хорошо.

Если это с точки зрения компьютера, это, в частности, должно быть через приложение Mac OS X.Если это с точки зрения телефона / планшета, его следует отличать от простого charging.

. Общая идея состоит в том, чтобы определить, когда пользователь находится за своим компьютером.

Примечание: Чтобы сделать это определение, мне нужно идентифицировать устройство.Для iOS используется UUID устройства (аналогичный тому, который используется в APNS).В Android комбинируются идентификаторы оборудования и программного обеспечения.Так что, если решение с точки зрения компьютера, я должен быть в состоянии получить эти строки.В противном случае мне нужно будет передать их на компьютер.

Бонус: Было бы замечательно, если бы синхронизация Wi-Fi также могла учитываться как "подключенная".

1 Ответ

1 голос
/ 11 ноября 2011

Простое решение

Рассмотрите возможность использования system_profiler SPUSBDataType до NSTask.
Когда мой iPhone подключен, в результат включается следующее:

iPhone:

 Product ID: 0x1292
 Vendor ID: 0x05ac  (Apple Inc.)
 Version: 0.01
 Serial Number: 
 Speed: Up to 480 Mb/sec
 Manufacturer: Apple Inc.
 Location ID: 0xfa140000 / 6
 Current Available (mA): 500
 Current Required (mA): 500
 Extra Operating Current (mA): 500

Используйте system_profiler SPUSBDataType -xml для вывода результата в формате XML:

<dict>
    <key>_name</key>
    <string>iPhone</string>
    <key>a_product_id</key>
    <string>0x1292</string>
    <key>b_vendor_id</key>
    <string>apple_vendor_id</string>
    <key>c_bcd_device</key>
    <string> 0.01</string>
    <key>d_serial_num</key>
    <string></string>
    <key>e_device_speed</key>
    <string>high_speed</string>
    <key>f_manufacturer</key>
    <string>Apple Inc.</string>
    <key>g_location_id</key>
    <string>0xfa140000 / 6</string>
    <key>h_bus_power</key>
    <string>500</string>
    <key>j_bus_power_used</key>
    <string>500</string>
    <key>k_extra_current_used</key>
    <string>500</string>
</dict>

Просто проанализируйте XML, чтобы определить, подключено или нет интересующее вас устройство.

...