2014-03-30 146 views
3

我下面的步驟來使用ADK通過Android工作室無法導入com.android.future.usb。*

控制mbed但他們mbed adkport code(向下滾動到adkport超鏈接),需要這些進口

import com.android.future.usb.UsbAccessory; 
import com.android.future.usb.UsbManager; 

我注意到另一個thread,暗示開發商的解決方案是其切換到android.hardware.usb,但是當我這樣做,3條不同的線路將無法工作,因爲基於硬件的包不支持getAccessorygetInstan ce符號

對此問題的任何解決方案?不能讓我的頭周圍

我嘗試以下更換代碼使用android.hardware.usb代替,但我仍然得到一個問題,用自己的android developer routine

 //mManager = UsbManager.getInstance(context); 
    UsbManager mManager = (UsbManager) getSystemService(Context.USB_SERVICE); 

但現在沒有關係的步驟不承認getSystemService

這是失敗的地方。

public void setup(Context context) 
{ 

    //mManager = UsbManager.getInstance(context); 
    UsbManager mManager = (UsbManager) getSystemService(Context.USB_SERVICE); //<----- 
    UsbAccessory[] accessoryList = mManager.getAccessoryList(); 
    PendingIntent mPermissionIntent = PendingIntent.getBroadcast(context, 0, 
      new Intent(ACTION_USB_PERMISSION), 0); 
    IntentFilter filter = new IntentFilter(ACTION_USB_PERMISSION); 
    context.registerReceiver(mUsbReceiver, filter); 
    mManager.requestPermission(accessoryList[0], mPermissionIntent); 


    if (accessoryList[0] != null) { 

     mAccessory = accessoryList[0]; 
     if(mManager.hasPermission(mAccessory)) 
     { 
     openAccessory(mAccessory); 
     } 
    } 

} 
+2

搜索http://developer.android.com/guide/topics/connectivity/usb/accessory.html的附加符號,你會發現他們的替代品。 –

+0

謝謝,似乎正在幫助取得進展,編輯了這個方法遇到的進一步困難的問題。 – Iancovici

+0

「getSystemService」是非常通用的,不僅僅是USB apis。但它是Context的一種方法,也許你正試圖在不擴展Context的類中調用它。 –

回答

0

getSystemService()是一個可以從一activity內部或從使用活性context非活動類內部調用方法。

因爲你的函數setup()應該通過傳遞一個ContextusbManager = (UsbManager) context.getSystemService(Context.USB_SERVICE);將解決你的問題被調用。

0

其中一條評論(來自Morrison Chang)實際上應該被複製爲答案(在類似情況下爲我工作)。

他的建議閱讀USB Accessory是現貨。蒸餾說明:

  1. 確保你的表現minSdkVersion足夠高(對我來說它是19)。
  2. UsbManager.getInstance(this)替換爲(UsbManager) getSystemService(Context.USB_SERVICE)
  3. UsbManager.getAccessory(intent)替換爲intent.getParcelableExtra(UsbManager.EXTRA_ACCESSORY)