@@ -387,11 +387,14 @@ public void handleMessage(Message msg) {
387387 case MSG_UPDATE_STATE :
388388 if (mConnected != mLastConnected || mConfiguration != mLastConfiguration ) {
389389 if (mConnected == 0 ) {
390- // make sure accessory mode is off, and restore default functions
391- if ( mCurrentAccessory != null && UsbManager .setFunctionEnabled (
392- UsbManager . USB_FUNCTION_ACCESSORY , false )) {
390+ if ( UsbManager . isFunctionEnabled (
391+ UsbManager .USB_FUNCTION_ACCESSORY )) {
392+ // make sure accessory mode is off, and restore default functions
393393 Log .d (TAG , "exited USB accessory mode" );
394-
394+ if (!UsbManager .setFunctionEnabled
395+ (UsbManager .USB_FUNCTION_ACCESSORY , false )) {
396+ Log .e (TAG , "could not disable accessory function" );
397+ }
395398 int count = mDefaultFunctions .size ();
396399 for (int i = 0 ; i < count ; i ++) {
397400 String function = mDefaultFunctions .get (i );
@@ -400,8 +403,10 @@ public void handleMessage(Message msg) {
400403 }
401404 }
402405
403- mDeviceManager .accessoryDetached (mCurrentAccessory );
404- mCurrentAccessory = null ;
406+ if (mCurrentAccessory != null ) {
407+ mDeviceManager .accessoryDetached (mCurrentAccessory );
408+ mCurrentAccessory = null ;
409+ }
405410 }
406411 }
407412
0 commit comments