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();
  } 
}

そして、私はこのエラーが発生しています

メソッド getSystemService(String) は、タイプ TCPClient に対して未定義です

いくつかの点が欠けているかどうかはわかりません。どんな助けでも素晴らしいでしょう。Eclipse Juno と JDK 1.7 を使用しています。

4

1 に答える 1

5

getSystemService(String)Contextclass:に対して定義されたメソッドですContext#getSystemService(String)。Activity は Context のサブクラスであるため、this.getSystemService(String)orを使用すると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);
于 2013-09-24T20:11:01.890 に答える