Développeur: Engr Saad
Courriel: [email protected]
Site Web: https://engr-saad.com
LinkedIn: https://www.linkedin.com/in/engr-saad/
Facebook: https://www.facebook.com/engr.saad.2/
Web de l'entreprise: https://triangletech.com.bd/
WhatsApp: +8801810536303
La base de ce projet est LED fournie avec l'appareil photo dans un téléphone intelligent Android typique. Après avoir vu que Play Store dispose d'un certain nombre d'applications qui demandent des autorisations inutiles, j'ai décidé de créer une application qui bascule la LED sans demander aucun type d'autorisation. Cette application implémente également un service qui détecte lorsque l'appareil est secoué (utilisé pour basculer la lampe de poche).
Depuis le 3 janvier de 2020, la lampe de poche est licenciée sous la version 2.0 de Licence Apache.
Code source (zip): Flashlight.zip
La majorité du code est écrite en Java et est simple. Pour détecter le mouvement de shake: déclarer les variables globales:
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 ;Initialiser 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 );
}Faire de la classe Implémentez l'interface SensoreventListener et remplacez sa méthode onSensorChange:
@ 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 ;
}
}
}
}Créer une fonction torchtoggle (commande 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 ();
}
}
}Toute aide, y compris les commentaires, est fortement apprise. Je viens de commencer avec Android et je suis relativement nouveau dans le développement d'applications.
git checkout -b new-branchgit commit -am 'Make a valuable addition'git push origin new-feature