これは、点滅しているフラッシュライトを通してユーザ入力を送信するアプリケーションを作成しようとしています。固定ストリングmyString = "1010101"を使用すると、懐中電灯が点滅し、私のアプリは懐中電灯にアクセスできます。しかし、私はユーザーからの入力を取得し、String myStringで保存すると、私はボタンを押しても何も起こりません。今のところ私はバイナリ入力をしたいだけです。私を助けてください。Appはバイナリをユーザから受け取り、閃光を点滅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?デビル –