그래서 깜박이는 플래시 라이트를 통해 사용자 입력을 전송하는 앱을 만들려고합니다. 고정 된 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;
}
}
});
}
UI 스레드의 Thread.sleep? 악마 –