2013-10-02 15 views
0

我想,如果一個手機插入到PC或將其拔出來檢測......所以在我的表現,我有:檢測,如果手機被插入到PC

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="de.name.usbtest.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
     <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
    </intent-filter> 
    </activity> 

    <service 
     android:name=".MyService" 
     > 
    </service> 
</application> 

我的服務類:

@Override 
public void onCreate() { 
    USBBroadcast usbTrigger = null; 
    // create new USBTrigger()() and register for ACTION_USB_DEVICE_ATTACHED broadcasts 
    usbTrigger = new USBBroadcast(); 
    registerReceiver(usbTrigger, new IntentFilter(UsbManager.ACTION_USB_DEVICE_ATTACHED)); 
} 

我的廣播接收器:

@Override 
public void onReceive(Context ctx, Intent intent) { 
    String action = intent.getAction(); 
    Toast.makeText(ctx, "Received", Toast.LENGTH_SHORT).show(); 
} 

,我的主要活動:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    Intent serviceIntent = new Intent(this, MyService.class); 

    startService(serviceIntent); 

    setContentView(R.layout.activity_main); 

} 

但我從來沒有看到吐司,當我插入我的手機...任何人都知道爲什麼?!

回答

1

你忘了show()Toast

Toast.makeText(ctx, "Received", Toast.LENGTH_SHORT).show(); 
+0

那麼,我只是忘了把它粘貼在這裏...在代碼中我用它「show()」 – davidOhara

0

this post提到的請嘗試使用此

<intent-filter> 
<action android:name="android.intent.action.ACTION_UMS_CONNECTED"/> 
<action android:name="android.intent.action.ACTION_UMS_DISCONNECTED"/> 

+0

USB大容量存儲是長期棄用 –