2013-09-24 4 views
0

Android에서 새로 생겼으며 Android USB를 사용하여 데이터를 보내려고합니다. 나는이 예제 코드Android getSystemService (Context.USB_SERVICE) 오류

// 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 (문자열)

는 잘 모르겠어요하여 TcpClient 유형에 대한 정의되지 않은납니다을 사용하려 내가 몇 가지 점을 놓친다면. 어떤 도움이라도 좋을 것입니다. Eclipse Juno와 JDK 1.7을 사용하고 있습니다.

답변

3

getSystemService(String)은 클래스 : Context#getSystemService(String)에 정의 된 방법입니다. Activity는 Context의 하위 클래스이므로 this.getSystemService(String) 또는 간단히 getSystemService(String)을 사용하면 Activity 내부에서 잘 작동합니다.

그러나이 방법을 TCPClient 클래스 내부에서 사용하려는 것 같습니다. 그리고 오류는 TCPClient#getSystemService(String)이 정의되지 않았다는 것을 지적하고 있습니다 : correct.

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

또는하여 TcpClient이 당신의 활동에 대한 내부 클래스 인 경우, 다음도 작동합니다 :

당신은 TCPClient에 활동의 컨텍스트를 전달하고로 사용하거나해야

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

감사합니다 그것을 지금 일합니다. – mbaydar

관련 문제