Entwickler: Engr Saad
E -Mail: [email protected]
Website: https://engr-saad.com
LinkedIn: https://www.linkedin.com/in/engr-saad/
Facebook: https://www.facebook.com/engr.saad.2/
Firmenweb: https://triangletech.com.bd/
WhatsApp: +8801810536303
Die Basis dieses Projekts wird zusammen mit der Kamera in einem typischen Android -Smartphone geleitet. Nachdem ich gesehen hatte, dass der Play Store eine Reihe von Apps enthält, die nach unnötigen Berechtigungen fragen, entschied ich mich, eine App zu erstellen, die die LED umschaltet, ohne nach einer Erlaubnis zu fragen. Diese App implementiert auch einen Dienst, der erkennt, wann das Gerät geschüttelt wird (zum Umschalten der Taschenlampe).
Ab Januar 2020 ist die Taschenlampe unter Apache -Lizenzversion 2.0 lizenziert.
Quellcode (ZIP): Taschenlampe.zip
Der Großteil des Code ist in Java geschrieben und ist einfach. Zum Erkennen von Shake -Bewegungen: Deklarieren Sie globale Variablen:
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 initialisieren:
sensorManager = ( SensorManager ) getSystemService ( SENSOR_SERVICE );
if ( sensorManager != null ) {
Sensor accelerometer = sensorManager . getDefaultSensor ( Sensor . TYPE_ACCELEROMETER );
sensorManager . registerListener (( SensorEventListener ) this , accelerometer , SensorManager . SENSOR_DELAY_NORMAL );
}Machen Sie die SensorEventListener -Schnittstelle der Klasse implementieren und überschreiben Sie die OnsenSorchanged -Methode:
@ 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 ;
}
}
}
}Erstellen Sie eine Funktion tolchtoggle (String -Befehl):
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 ();
}
}
}Jede Hilfe, einschließlich Feedback, wird sehr beanstandet. Ich habe gerade mit Android angefangen und bin relativ neu in der App -Entwicklung.
git checkout -b new-branchgit commit -am 'Make a valuable addition'git push origin new-feature