应用程序从用户接收二进制输入和闪烁手电筒传输输入时 button 处于按下状态 Android studio

发布时间: 2016/9/28 1:11:50
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

所以我想创建一个应用程序传输通过闪烁闪光灯的用户输入。当我使用固定的字符串 myString ="1010101"手电筒闪烁所以我的应用程序能够访问的手电筒。然而,当我接受来自用户的输入,并将其保存在字符串 myString,我按 button 但什么也没有发生。现在只想把二进制输入。请你帮帮我。

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:

移动这条线

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

onClick() 方法。理想情况下,它能解决您的问题。您正在访问前的字符串 button 单击是。我的猜测是空字符串,被为止。

官方微信
官方QQ群
31647020