【问题标题】:I want to make sos app but errors in blinking method我想制作 sos 应用程序,但闪烁方法出错
【发布时间】:2017-09-18 17:17:35
【问题描述】:

我对安卓很陌生。以下是我的代码,我收到了这些错误。

  1. 无法解析符号参数。
  2. 从未分配变量“blinkDelay”。
  3. 当我将鼠标悬停在“Parameters”上时。它说“android.hardware.Camera.Parameters Alt+Enter”。

在以下代码中:

blinkButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String myString = "0101010101";
            long blinkDelay 50;
            for (int i = 0; i < myString.length(); i++) {
                if (myString.charAt(i) == '0') {
                    params.setFlashMode(Parameters.FLASH_MODE_ON);
                } else {
                    params.setFlashMode(Parameters.FLASH_MODE_OFF);
                }
                try {
                    Thread.sleep(blinkDelay);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }
    });

这是我完整的MainActivity.java

package com.fusion.flashlight;     

import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.PackageManager;
import android.hardware.Camera;
import android.hardware.camera2.CameraAccessException;
import android.hardware.camera2.CameraManager;
import android.media.MediaPlayer;
import android.os.Build;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;

public class MainActivity extends AppCompatActivity {

private CameraManager mCameraManager;
private String mCameraId;
private ImageButton mTorchOnOffButton;
private ImageButton firstButton;
private Button blinkButton;
private Boolean isTorchOn;
private MediaPlayer media;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("MainActivity", "onCreate()");
    setContentView(R.layout.activity_main);
    mTorchOnOffButton = (ImageButton) findViewById(R.id.btnSwitch);
    firstButton = (ImageButton) findViewById(R.id.btn1Switch);
    blinkButton = (Button) findViewById(R.id.blinking);

    isTorchOn = false;

    Boolean isFlashAvailable = getApplicationContext().getPackageManager()
            .hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);

    if (!isFlashAvailable) {

        AlertDialog alert = new AlertDialog.Builder(MainActivity.this)
                .create();
        alert.setTitle("Error !!");
        alert.setMessage("Your device doesn't support flash light!");
        alert.setButton(DialogInterface.BUTTON_POSITIVE, "OK", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                // closing the application
                finish();
                System.exit(0);
            }
        });
        alert.show();
        return;
    }

    mCameraManager = (CameraManager) getSystemService(Context.CAMERA_SERVICE);
    try {
        mCameraId = mCameraManager.getCameraIdList()[0];
    } catch (CameraAccessException e) {
        e.printStackTrace();
    }

    mTorchOnOffButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                if (isTorchOn) {
                    turnOffFlashLight();
                    isTorchOn = false;
                } else {
                    turnOnFlashLight();
                    isTorchOn = true;
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });

    blinkButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String myString = "0101010101";
            long blinkDelay 50;
            for (int i = 0; i < myString.length(); i++) {
                if (myString.charAt(i) == '0') {
                    params.setFlashMode(Parameters.FLASH_MODE_ON);
                } else {
                    params.setFlashMode(Parameters.FLASH_MODE_OFF);
                }
                try {
                    Thread.sleep(blinkDelay);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }
    });



}
public void turnOnFlashLight() {

    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mCameraManager.setTorchMode(mCameraId, true);
            playOnOffSound();
            mTorchOnOffButton.setImageResource(R.drawable.btn_on);
            firstButton.setImageResource(R.drawable.btn11_on);

        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}


public void turnOffFlashLight() {

    try {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            mCameraManager.setTorchMode(mCameraId, false);
            playOnOffSound();
            mTorchOnOffButton.setImageResource(R.drawable.btn_off);
            firstButton.setImageResource(R.drawable.btn11_off);



        }

    } catch (Exception e) {
        e.printStackTrace();
    }
}

private void playOnOffSound(){

    media = MediaPlayer.create(MainActivity.this, R.raw.light_switch_on);
    media.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {
            //TODO Auto-generated method stub
            mp.release();
        }
    });
    media.start();
}
@Override
protected void onStop() {
    super.onStop();
    if(isTorchOn){
        turnOffFlashLight();
    }
}

@Override
protected void onPause() {
    super.onPause();
    if(isTorchOn){
        turnOffFlashLight();
    }
}

@Override
protected void onResume() {
    super.onResume();
    if(isTorchOn){
        turnOnFlashLight();
    }
}

}

【问题讨论】:

    标签: android


    【解决方案1】:

    对于 blinkDelay,分配时缺少等号,

    对于参数,我看不到您在哪里创建该变量。

    另外一个,alt+Enter 用于 Android Studio 自动导入参数类。

    【讨论】:

      【解决方案2】:
      • 无法解析符号参数。 params not define

      • 从未分配变量“blinkDelay”。 blinkDelay having no initial value

        长时间闪烁延迟 =50;

      • 当我将鼠标悬停在“参数”上时。它说
        “android.hardware.Camera.Parameters Alt+Enter”。 Alt+Enter for import

      【讨论】:

      • 您的第二个问题通过使用 long blinkDelay =50; 而不是 ` long blinkDelay 50; 得到解决;
      • 如何定义参数?
      • 对于第三个错误,只需点击 Parameters 并按 Alt+Enter
      • 当我按 Alt+Enter 时。 Camera.Parameter 显示,但它是通过文本删除。
      • 您从哪里获得此代码?你能告诉我..因为参数可以是任何东西
      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 2013-04-26
      • 1970-01-01
      • 2018-06-20
      • 2022-11-04
      • 2015-01-20
      • 2020-06-28
      • 2016-12-20
      相关资源
      最近更新 更多