簡體   English   中英

應用程序從用戶處獲取二進制輸入,並在 Android Studio 中按下按鈕時閃爍手電筒傳輸輸入

[英]App takes binary Input from user and blinks flashlight transmitting the input when a button is pressed in Android Studio

所以我正在嘗試創建一個應用程序,通過閃爍的閃光燈傳輸用戶輸入。 當我使用固定的 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;
            }
        }
    });
}

移動這條線

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

onClick()方法中。 理想情況下,這應該可以解決您的問題。 您在單擊按鈕之前訪問字符串。 我的猜測是到目前為止正在使用空字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM