2011-11-10 19 views
0

スマートフォンやタブレット(iOSまたはAndroid)がコンピュータに接続されているかどうかを判断する手段はありますか?スマートフォンとタブレット - コンピュータに接続

携帯電話/タブレットのパースペクティブ(isConnectedToComputer)またはコンピュータパースペクティブ(connectedDevices)のいずれかが問題ありません。

コンピュータの観点から見ると、具体的にはMac OS Xアプリを使用する必要があります。 携帯電話/タブレットの視点から見た場合は、単にchargingと区別する必要があります。

一般的な考え方は、ユーザーがいつコンピュータにいるかを判断することです。

注:この決定を行うには、デバイスを特定する必要があります。 iOSでは、デバイスのUUID(APNSで使用されているのと同様)が使用されます。 Androidでは、ハードウェアとソフトウェアの組み合わせIDが結合されます。したがって、コンピュータの観点から見れば、私はこれらの文字列を得ることができる必要があります。それ以外の場合は、それらをコンピュータに渡す必要があります。

ボーナス: Wi-Fi同期を「接続済み」として考慮することもできます。

答えて

1

簡単な解決策は

NSTaskを通じてsystem_profiler SPUSBDataTypeを使用することを検討してください。
私の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 -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%得られていません。私は質問にいくつかの文脈を追加し、当面は未回答のままにしておきます。もう一度ありがとう! –

関連する問題