0

我是 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。

4

1 回答 1

5

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

但是,您似乎正试图在名为TCPClient. 错误指出TCPClient#getSystemService(String)未定义:正确。

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

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

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

UsbManager manager = (UsbManager) 
                  YourActivityName.this.getSystemService(Context.USB_SERVICE);
于 2013-09-24T20:11:01.890 回答