CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: megthebest con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: carotix con ben 5 Thanks ricevuti negli ultimi sette giorni
Utente del mese: carotix con ben 19 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 1 su 1
Discussione:

Utilizzo Giroscopio

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Androidiano


    Registrato dal
    Jul 2014
    Messaggi
    59

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ciao a tutti!

    Non riesco a capire come funziona esattamente il Giroscopio. Attualmente ho utilizzato il seguente codice:


     
    1
    public class MainActivity extends Activity implements SensorEventListener {
    2
    3
        private TextView tv;
    4
        private SensorManager mSensorManager;
    5
        private Sensor mGyroSensor;
    6
    7
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    8
        protected void onCreate(Bundle savedInstanceState) {
    9
            super.onCreate(savedInstanceState);
    10
            setContentView(R.layout.activity_main);
    11
    12
            tv= (TextView)findViewById(R.id.txt2);
    13
            // Get an instance of the sensor service
    14
            mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    15
            mGyroSensor=mSensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
    16
    17
            PackageManager PM= this.getPackageManager();
    18
            boolean gyro = PM.hasSystemFeature(PackageManager.FEATURE_SENSOR_GYROSCOPE);
    19
            boolean light = PM.hasSystemFeature(PackageManager.FEATURE_SENSOR_LIGHT);
    20
    21
            if(gyro){
    22
    23
                if(light){
    24
                    Toast.makeText(getApplicationContext(),"Both light and gyroscope sensors are present", Toast.LENGTH_LONG).show();
    25
                }
    26
                else
    27
                    Toast.makeText(getApplicationContext(),"Only gyroscope sensor is present", Toast.LENGTH_LONG).show();
    28
    29
            }
    30
        }
    31
    32
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    33
        public final void onAccuracyChanged(Sensor sensor, int accuracy) {
    34
            // Do something if sensor accuracy changes.
    35
        }
    36
    37
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    38
        public final void onSensorChanged(SensorEvent event) {
    39
    40
            float angularXSpeed = event.values[0];
    41
            tv.setText("Angular X speed level is: " + "" +angularXSpeed);
    42
    43
            for (int i=0;i<event.values.length;i++){
    44
                tv.setText("asseX:"+event.values[0]+"  asseY:"+event.values[1]+"  asseZ:"+event.values[2]);
    45
            }
    46
        }
    47
    48
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    49
        protected void onResume() {
    50
            // Register a listener for the sensor.
    51
            super.onResume();
    52
            mSensorManager.registerListener(this, mGyroSensor, SensorManager.SENSOR_DELAY_NORMAL);
    53
        }
    54
    55
        @<a rel="nofollow" href="https://www.androidiani.com/forum/members/override.html" target="_blank">Override</a>
    56
        protected void onPause() {
    57
            // important to unregister the sensor when the activity pauses.
    58
            super.onPause();
    59
            mSensorManager.unregisterListener(this);
    60
        }
    61
    62



    Nella text View che comprare nell'interfaccia ci sono i valori dei tre assi X Y Z.
    Il problema è che questi valori cambiano in continuazione e rapidamente, peraltro con valori molto distanti tra di loro (ad esempio da "0,XX..." a "9,XX..." improvvisamente), il tutto ovviamente senza muovere il tablet.
    Quindi immagino che il mio approccio non siacorretto.

    Qualcuno potrebbe aiutarmi?

    Vi ringrazio molto..

    Saluti!
    Ultima modifica di chri13; 08-07-17 alle 20:12

  2.  

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy