Android getSystemService(Context.USB_SERVICE)错误

时间:2013-09-24 19:48:52

标签: java android serial-port usb

我是Android新手,我尝试使用Android USB发送一些数据。我试图使用这个示例代码

// Get UsbManager from Android.
UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);

// Find the first available driver.
UsbSerialDriver driver = UsbSerialProber.acquire(manager);

if (driver != null) {
  driver.open();
  try {
    driver.setBaudRate(115200);

    byte buffer[] = new byte[16];
    int numBytesRead = driver.read(buffer, 1000);
    Log.d(TAG, "Read " + numBytesRead + " bytes.");
  } catch (IOException e) {
    // Deal with error.
  } finally {
    driver.close();
  } 
}

我收到此错误

  

对于TCPClient类型

,未定义方法getSystemService(String)

我不确定我是否错过了一些观点。任何帮助都会很棒。我正在使用Eclipse Juno和JDK 1.7。

1 个答案:

答案 0 :(得分:5)

getSystemService(String)是为Context类定义的方法:Context#getSystemService(String)。由于Activity是Context的子类,因此使用this.getSystemService(String)或简单地getSystemService(String)可以在Activity中正常工作。

但是,您似乎正在尝试在名为TCPClient的类中使用此方法。错误指出TCPClient#getSystemService(String)未定义:正确。

您应该将活动的上下文传递给TCPClient并将其用作:

UsbManager manager = (UsbManager) 
                       passedContext.getSystemService(Context.USB_SERVICE);

或者,如果TCPClient是您的Activity的内部类,则以下内容也应该起作用:

UsbManager manager = (UsbManager) 
                  YourActivityName.this.getSystemService(Context.USB_SERVICE);