bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


android_sensors

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
Ultima revisió Ambdós costats nova versio
android_sensors [2024/01/26 16:58]
enric_mieza_sanchez [Exemple]
android_sensors [2024/01/26 17:36]
enric_mieza_sanchez [Sensors de moviment d'Android]
Línia 1: Línia 1:
 ====== Sensors de moviment d'Android ====== ====== Sensors de moviment d'Android ======
 +
 +{{ :android:eixos-accelerometre.jpg?200 }}
  
 Referències: Referències:
-  * [[https://developer.android.com/develop/sensors-and-location/sensors/sensors_motion|Sensors de moviment en Android]].+  * [[https://developer.android.com/develop/sensors-and-location/sensors/sensors_motion|Doc oficial: sensors de moviment en Android]].
   * [[https://stackoverflow.com/questions/5271448/how-to-detect-shake-event-with-android|Com detectar sacsejos amb l'acceleròmetre]].   * [[https://stackoverflow.com/questions/5271448/how-to-detect-shake-event-with-android|Com detectar sacsejos amb l'acceleròmetre]].
  
Línia 8: Línia 10:
  
 \\ \\
 +
 +===== Sensors =====
 +Quan parlem de "sensors" en Android solem referir-nos als de moviment: l'**acceleròmetre** i el **giroscopi** (brúixola 3D).
 +
 +També son sensors (però no de moviment) la càmera, el micro, la pantalla tàctil i el GPS.
 +
 +Si mirem la documentació oficial podrem veure que la llibreria Android disposa dels següents deteccions:
 +  * Sensor.TYPE_GRAVITY
 +  * Sensor.TYPE_LINEAR_ACCELERATION
 +  * Sensor.TYPE_ROTATION_VECTOR
 +  * Sensor.TYPE_SIGNIFICANT_MOTION
 +  * Sensor.TYPE_STEP_COUNTER
 +  * Sensor.TYPE_STEP_DETECTOR
 +  * Sensor.TYPE_ACCELEROMETER
 +  * Sensor.TYPE_GYROSCOPE
 +
 +Els dos darrers son les dades "en cru" tal i com arriben dels sensors. Els altres son mecanismes de la llibreria per facilitar-nos la programació.
  
 ===== Exemple ===== ===== Exemple =====
Línia 16: Línia 35:
     private SensorManager sensorManager;     private SensorManager sensorManager;
     private Sensor sensor;     private Sensor sensor;
 +    SensorEventListener sensorListener;
  
     @Override protected void onCreate(Bundle savedInstanceState) {     @Override protected void onCreate(Bundle savedInstanceState) {
Línia 21: Línia 41:
         setContentView(R.layout.activity_main);         setContentView(R.layout.activity_main);
  
-        final SensorEventListener mSensorListener = new SensorEventListener() {+        sensorListener = new SensorEventListener() {
             @Override             @Override
             public void onSensorChanged(SensorEvent sensorEvent) {             public void onSensorChanged(SensorEvent sensorEvent) {
Línia 29: Línia 49:
                 float zAcc = sensorEvent.values[2];                 float zAcc = sensorEvent.values[2];
                                  
-                // Processem visualitzem dades...+                // Processament visualització de dades...
             }             }
  
             @Override             @Override
             public void onAccuracyChanged(Sensor sensor, int i) {             public void onAccuracyChanged(Sensor sensor, int i) {
-                // Podem ignorar aquesta CB de moment+                // Es pot ignorar aquesta CB de moment
             }             }
         };         };
Línia 44: Línia 64:
         // registrem el Listener per capturar els events del sensor         // registrem el Listener per capturar els events del sensor
         if( sensor!=null ) {         if( sensor!=null ) {
-            sensorManager.registerListener(mSensorListener,sensor,+            sensorManager.registerListener(sensorListener,sensor,
                     SensorManager.SENSOR_DELAY_NORMAL);                     SensorManager.SENSOR_DELAY_NORMAL);
         }         }
Línia 56: Línia 76:
  
 <WRAP todo> <WRAP todo>
-Implementa una app que visualitzi els valors de l'acceleròmetre de l'exemple ''Sensor.TYPE_ACCELEROMETER''.+Implementa una app que visualitzi els valors de l'acceleròmetre seguint l'exemple anterior on emprem el ''Sensor.TYPE_ACCELEROMETER''. Tens unes captures de pantalla més a baix de com pots fer la app.
  
 Compara amb el resultat de ''Sensor.TYPE_LINEAR_ACCELERATION''. Quina diferència veus? Compara amb el resultat de ''Sensor.TYPE_LINEAR_ACCELERATION''. Quina diferència veus?
 +
 +Llença l'app al teu dispositiu mòbil.
 +
 +Com has de col·locar el mòbil per aconseguir aquests valors (aproximats)?:
 +
 +{{:android:tapapp1.jpg?150}}
 +{{:android:tapapp2.jpg?150}}
 +{{:android:tapapp3.jpg?150}}
 +
 +</WRAP>
 +
 +<WRAP todo>
 +**Double tap**
  
 Intenta implementar un detector de "double tap". No ha de reaccionar amb 1 sol "tap" ni tampoc si ens desplacem ràpid o fem una sola sacsejada del mòbil. Intenta implementar un detector de "double tap". No ha de reaccionar amb 1 sol "tap" ni tampoc si ens desplacem ràpid o fem una sola sacsejada del mòbil.
 </WRAP> </WRAP>
  
android_sensors.txt · Darrera modificació: 2024/01/26 17:37 per enric_mieza_sanchez