2011-11-10 2 views
0

스마트 폰 또는 태블릿 (iOS 또는 Android)이 컴퓨터에 연결되어 있는지 확인하는 방법이 있습니까?스마트 폰 및 태블릿 - 컴퓨터에 꽂음

휴대 전화/태블릿 퍼스펙티브 (즉, isConnectedToComputer) 또는 컴퓨터 퍼스펙티브 (즉, connectedDevices)가 좋을 것입니다.

컴퓨터의 관점에서 볼 때 특별히 Mac OS X 앱을 사용해야합니다. 전화/태블릿의 관점에서 볼 때 단순히 charging과 구별해야합니다.

일반적인 생각은 사용자가 컴퓨터에있을 때를 결정하는 것입니다.

참고 :이 결정을 내리기 위해 기기를 식별해야합니다. iOS의 경우 장치 UUID (APNS에서 사용 된 것과 유사)가 사용됩니다. Android에서는 조합 하드웨어 및 소프트웨어 ID가 결합됩니다. 그래서 컴퓨터 관점에서 볼 때,이 문자열을 얻을 수 있어야합니다. 그렇지 않으면 컴퓨터에 전달할 수 있어야합니다.

보너스 : Wi-Fi 동기화가 "연결됨"으로 간주 될 수 있다면 환상적입니다.

답변

1

간단한 해결 방법은

NSTask을 통해 system_profiler SPUSBDataType을 사용하는 것이 좋습니다.
내 아이폰이 연결되어 하여 결과에 포함되어 다음

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 -xmlXML 형식으로 결과 :

<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을 구문 분석 연결되어 있는지 여부.

+0

iPhone/iPad 관련 :이 응용 프로그램에서 하드웨어 UUID를 가져 오는 방법이 있습니까? –

+1

'system_profiler SPHardwareDataType -xml'을 실행하면 Mac 자체의 UUID가 표시되고 ' platform_UUID'키를 찾습니다. 유감 스럽지만'system_profiler '는 연결된 iDevices에 대해 UUID를 제공 할 수 없습니다. – Anne

+0

이 답변의 단순함을 사랑하는 한 각 장치에서 필요한 정보를 100 % 제공하지 않습니다. 질문에 더 많은 내용을 추가했으며 당분간 답을 얻지 못하게 할 것입니다. 다시 한번 감사드립니다! –

관련 문제