【发布时间】:2016-09-20 09:56:49
【问题描述】:
所以我正在尝试创建一个通过闪烁的闪光灯传输用户输入的应用程序。当我使用固定的 String myString = "1010101" 时,手电筒会闪烁,因此我的应用程序能够访问手电筒。但是,当我从用户那里获取输入并将其保存在 String myString 中时,我按下按钮但没有任何反应。现在我只想接受二进制输入。请帮帮我。
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;
}
}
});
}
【问题讨论】:
-
Thread.sleep 在 UI 线程上?恶魔
标签: java android android-studio binary-data flashlight