2013-04-01 3 views
0

USB 용 Android 호스트 모드로 작업하고 있습니다. host mode api에 대한 문서에서 매니페스트 요구 사항은 사용하는 것이 좋습니다 :USB 호스트에 혼란스러운 문서가 있습니다.

android.hardware.usb.action.USB_DEVICE_ATTACHED 

이 나에게 UsbManager docs로 혼란을 일으키는 사용하는 것이 좋습니다 :

android.hardware.usb.action.ACTION_USB_DEVICE_ATTACHED 

사람이 둘 사이의 차이를 설명 할 수 있습니까?

또한, 장치가 연결되었지만 호스트 (1st) 버전에서는 UsbManager (2nd) 버전이 내 앱에 알리지 않습니다.

은 또한 버전을 사용하여 작동하도록 분리 의도를 얻을 수 없습니다

android.hardware.usb.action.USB_DEVICE_DETACHED 
android.hardware.usb.action.ACTION_USB_DEVICE_DETACHED 

조언 바랍니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="cs.android.terminal" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="12" android:targetSdkVersion="15" /> 


    <uses-feature android:name="android.hardware.usb.accessory" /> 
    <uses-feature android:name="android.hardware.usb.host" /> 


    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" 
     > 


     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" />     
       <category android:name="android.intent.category.LAUNCHER" /> 
       <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />      
       <category android:name="android.intent.category.DEFAULT" /> 
      </intent-filter> 

      <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> 


     </activity> 

     <receiver    
      android:name="cs.android.terminal.TerminalReceiver" 
      android:exported="false" 
      > 
      <intent-filter> 
        <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" /> 
        <category android:name="android.intent.category.DEFAULT" />     
      </intent-filter> 
     </receiver> 

    </application> 

</manifest> 

답변

0

USB_DEVICE_ATTACHED이 장치가 USB에 연결되어있는 경우 감지하는 매니페스트 파일에 사용되는 :

편집

여기 내 매니페스트입니다. ACTION_USB_DEVICE_ATTACHED은 작업이 수행되고 그 작업이 무엇인지 나타내는 Java 코드와 함께 사용됩니다. 현재 ACTION_USB_DEVICE_ATTACHED의 오류/버그가 있지만 Android가 Java 코드에서 BroadcastReceiver를 감지하지 못하는 경우 현재 Manifest에서만 감지 할 수 있습니다. 모두 말씀 드리면 매니페스트에 USB_DEVICE_ATTACHED을 사용하십시오.

편집 :이 시도 :

<meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" android:resource="@xml/device_filter" /> 
+0

좋아, 그건 나에게 약간의 도움이 같아요. 분리 필터가 분리 방송 이벤트를 수신하지 않는 이유를 알고 있습니까? –

+0

'BroadcastReceiver'를 등록하셨습니까? 보통 이것은 onResume에서 행해지지만 USB 통신의 경우에는 onCreate에서 수행 한 다음 onDestroy에서 unregisterReceiver를 호출하지만 보통 onPause에서 수행됩니다. – TronicZomB

+0

두 리시버가 매니페스트에 등록됩니다. 하나는 접속 용이고 다른 하나는 분리 용입니다. 첨부 필터가 정상적으로 작동하지만 분리가 결코 발생하지 않습니다. –

관련 문제