2016-09-20 5 views
2

그래서 깜박이는 플래시 라이트를 통해 사용자 입력을 전송하는 앱을 만들려고합니다. 고정 된 String myString = "1010101"을 사용할 때 내 애플리케이션이 손전등에 액세스 할 수 있도록 손전등이 깜박입니다. 그러나, 내가 사용자로부터 입력을 받아 문자열 myString에 저장하면 버튼을 누르면 아무 일도 일어나지 않습니다. 지금은 바이너리 입력 만 받아들이고 싶습니다. 제발 도와주세요.앱이 바이너리를 입력하고 플래시 라이트를 깜박임 Android Studio에서 버튼을 누를 때 입력을 전송합니다.

EditText binData; 
Button blinkMode; 
boolean isFlashOn = false; 
Camera camera; 
String myString; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    camera = camera.open(); 

    binData = (EditText)findViewById(R.id.editText); 
    final Camera.Parameters params = camera.getParameters(); 
    blinkMode = (Button)findViewById(R.id.button); 

    myString = binData.getText().toString(); 

    blinkMode.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      long blinkDelay = 50; //Delay in ms 
      for(int i=0; i<myString.length(); i++){ 
       if(myString.charAt(i)=='1'){ 
        params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH); 
        camera.setParameters(params); 
        camera.startPreview(); 
        isFlashOn = true; 


       } else if(myString.charAt(i)=='0') { 

        params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
        camera.setParameters(params); 
        camera.stopPreview(); 
        isFlashOn = false; 

       } 
       try { 
        Thread.sleep(blinkDelay); 
       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 

      int length=myString.length(); 
      if(length == myString.length()) { 
       params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF); 
       camera.setParameters(params); 
       camera.stopPreview(); 
       isFlashOn = false; 
      } 
     } 
    }); 
} 
+1

UI 스레드의 Thread.sleep? 악마 –

답변

1

이동이 라인 onClick()있어서 내부

myString = binData.getText().toString(); 

. 그게 이상적으로 문제를 해결해야합니다. 버튼을 클릭하기 전에 문자열에 액세스하고 있습니다. 제 추측으로는 지금까지 빈 문자열이 사용되었다는 것입니다.

+0

감사. 그것은 도왔다! :) –