개발자 : Engr Saad
이메일 : [email protected]
웹 사이트 : https://engr-saad.com
LinkedIn : https://www.linkedin.com/in/engr-saad/
Facebook : https://www.facebook.com/engr.saad.2/
회사 웹 : https://triangletech.com.bd/
WhatsApp : +8801810536303
이 프로젝트의 기본은 일반적인 Android 스마트 폰의 카메라와 함께 제공됩니다. Play 스토어에는 불필요한 권한을 요구하는 여러 앱이있는 것을 본 후에는 모든 유형의 권한을 요구하지 않고 LED를 전환하는 앱을 만들기로 결정했습니다. 이 앱은 또한 장치가 흔들릴 때 (손전등을 전환하는 데 사용)를 감지하는 서비스를 구현합니다.
2020 년 1 월 3 일 현재 Flashlight는 Apache 라이센스 버전 2.0에 따라 라이센스가 부여됩니다.
소스 코드 (zip) : Flashlight.zip
코드의 대부분은 Java로 작성되었으며 간단합니다. 쉐이크 모션 감지 : 글로벌 변수 선언 :
SensorManager sensorManager = null ;
public static final float SHAKE_THRESHOLD = 10.25f ; // How hard should user shake to invoke the service
public static final int MIN_TIME_BETWEEN_SHAKES = 1000 ;
private long lastShakeTime = 0 ;
private boolean isFlashlightOn = false ;sensormanager 초기화 :
sensorManager = ( SensorManager ) getSystemService ( SENSOR_SERVICE );
if ( sensorManager != null ) {
Sensor accelerometer = sensorManager . getDefaultSensor ( Sensor . TYPE_ACCELEROMETER );
sensorManager . registerListener (( SensorEventListener ) this , accelerometer , SensorManager . SENSOR_DELAY_NORMAL );
}클래스를 구현하여 sensoreventlistener 인터페이스를 구현하고 onsensorChanged 메소드를 재정의합니다.
@ Override
public void onSensorChanged ( SensorEvent event ) {
if ( event . sensor . getType () == Sensor . TYPE_ACCELEROMETER ) {
long curTime = System . currentTimeMillis ();
if (( curTime - lastShakeTime ) > MIN_TIME_BETWEEN_SHAKES ) {
float x = event . values [ 0 ];
float y = event . values [ 1 ];
float z = event . values [ 2 ];
double acceleration = Math . sqrt ( Math . pow ( x , 2 ) +
Math . pow ( y , 2 ) +
Math . pow ( z , 2 )) - SensorManager . GRAVITY_EARTH ;
if ( acceleration > SHAKE_THRESHOLD ) {
lastShakeTime = curTime ;
if (! isFlashlightOn ) {
torchToggle ( "on" );
isFlashlightOn = true ;
}
else {
torchToggle ( "off" );
isFlashlightOn = false ;
}
}
}
}torchtoggle (String 명령) 함수 만들기 :
private void torchToggle ( String command ) {
if ( Build . VERSION . SDK_INT >= Build . VERSION_CODES . M ) {
CameraManager camManager = ( CameraManager ) getSystemService ( Context . CAMERA_SERVICE );
String cameraId = null ; // Usually back camera is at 0 position.
try {
if ( camManager != null ) {
cameraId = camManager . getCameraIdList ()[ 0 ];
}
if ( camManager != null ) {
if ( command . equals ( "on" )) {
camManager . setTorchMode ( cameraId , true ); // Turn ON
isFlashlightOn = true ;
} else {
camManager . setTorchMode ( cameraId , false ); // Turn OFF
isFlashlightOn = false ;
}
}
} catch ( CameraAccessException e ) {
e . getMessage ();
}
}
}피드백을 포함한 모든 도움은 고도로 걱정됩니다. 방금 Android로 시작했으며 App Development에 비교적 처음입니다.
git checkout -b new-branch 만듭니다git commit -am 'Make a valuable addition'git push origin new-feature