Pengembang: Engr Saad
Email: [email protected]
Situs web: https://enggr-saad.com
LinkedIn: https://www.linkedin.com/in/engr-saad/
Facebook: https://www.facebook.com/engr.saad.2/
Web Perusahaan: https://triangletech.com.bd/
Whatsapp: +8801810536303
Basis proyek ini disediakan bersama dengan kamera di ponsel pintar Android yang khas. Setelah melihat bahwa Play Store memiliki sejumlah aplikasi yang meminta izin yang tidak perlu, saya memutuskan untuk membuat aplikasi yang mengubah LED tanpa meminta izin apa pun. Aplikasi ini juga mengimplementasikan layanan yang mendeteksi ketika perangkat diguncang (digunakan untuk beralih senter).
Pada tanggal 3 Januari 2020, senter dilisensikan di bawah Lisensi Apache versi 2.0.
Sumber Code (ZIP): Senter.zip
Mayoritas kode ditulis dalam Java dan sederhana. Untuk mendeteksi gerakan goyang: mendeklarasikan variabel global:
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 ;Inisialisasi 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 );
}Make class mengimplementasikan antarmuka sensoreventListener dan menimpa metode oncensorchanged:
@ 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 ;
}
}
}
}Buat fungsi torchtoggle (perintah 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 ();
}
}
}Bantuan apa pun, termasuk umpan balik, sangat dinilai. Saya baru saja memulai dengan Android dan saya relatif baru dalam pengembangan aplikasi.
git checkout -b new-branchgit commit -am 'Make a valuable addition'git push origin new-feature