【问题标题】:App takes binary Input from user and blinks flashlight transmitting the input when a button is pressed in Android Studio应用程序从用户那里获取二进制输入,并在 Android Studio 中按下按钮时闪烁手电筒以传输输入
【发布时间】: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


【解决方案1】:

移动这一行

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

onClick() 方法中。理想情况下,这应该可以解决您的问题。在单击按钮之前,您正在访问字符串。我的猜测是到目前为止一直在使用空字符串。

【讨论】:

  • 谢谢。它有帮助! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-26
  • 1970-01-01
  • 2019-04-11
  • 2011-10-31
  • 2017-11-30
  • 1970-01-01
相关资源
最近更新 更多