11package com .phonegap ;
22
3- import static android .hardware .SensorManager .DATA_X ;
4- import static android .hardware .SensorManager .DATA_Y ;
5- import static android .hardware .SensorManager .DATA_Z ;
3+
4+ import java .util .List ;
5+
6+ import android .hardware .Sensor ;
7+ import android .hardware .SensorEvent ;
8+ import android .hardware .SensorEventListener ;
69import android .hardware .SensorManager ;
710import android .content .Context ;
8- import android .hardware .SensorListener ;
911import android .webkit .WebView ;
1012
11- @ SuppressWarnings ("deprecation" )
12- public class AccelListener implements SensorListener {
13+ public class AccelListener implements SensorEventListener {
1314
1415 WebView mAppView ;
1516 Context mCtx ;
1617 String mKey ;
18+ Sensor mSensor ;
1719 int mTime = 10000 ;
1820 boolean started = false ;
1921
@@ -26,16 +28,21 @@ public class AccelListener implements SensorListener{
2628 mCtx = ctx ;
2729 mAppView = appView ;
2830 sensorManager = (SensorManager ) mCtx .getSystemService (Context .SENSOR_SERVICE );
31+
2932 }
3033
3134 public void start (int time )
3235 {
3336 mTime = time ;
34- if (!started )
37+ List <Sensor > list = this .sensorManager .getSensorList (Sensor .TYPE_ACCELEROMETER );
38+ if (list .size () > 0 )
3539 {
36- sensorManager .registerListener (this ,
37- SensorManager .SENSOR_ACCELEROMETER ,
38- SensorManager .SENSOR_DELAY_GAME );
40+ this .mSensor = list .get (0 );
41+ this .sensorManager .registerListener (this , this .mSensor , SensorManager .SENSOR_DELAY_NORMAL );
42+ }
43+ else
44+ {
45+ // Call fail
3946 }
4047 }
4148
@@ -45,23 +52,25 @@ public void stop()
4552 sensorManager .unregisterListener (this );
4653 }
4754
48- public void onAccuracyChanged (int sensor , int accuracy ) {
49- // This should call the FAIL method
50- }
5155
52- public void onSensorChanged (int sensor , float [] values ) {
53- if (sensor != SensorManager .SENSOR_ACCELEROMETER || values .length < 3 )
54- return ;
56+
57+ public void onAccuracyChanged (Sensor sensor , int accuracy ) {
58+ // TODO Auto-generated method stub
59+
60+ }
61+
62+ public void onSensorChanged (SensorEvent event ) {
63+ if (event .sensor .getType () != Sensor .TYPE_ACCELEROMETER )
64+ return ;
5565 long curTime = System .currentTimeMillis ();
56- if (lastUpdate == -1 || (curTime - lastUpdate ) > mTime ) {
57-
66+ if (lastUpdate == -1 || (curTime - lastUpdate ) > mTime ) {
5867 lastUpdate = curTime ;
59-
60- float x = values [DATA_X ];
61- float y = values [DATA_Y ];
62- float z = values [DATA_Z ];
68+
69+ float x = event . values [0 ];
70+ float y = event . values [1 ];
71+ float z = event . values [2 ];
6372 mAppView .loadUrl ("javascript:gotAccel(" + x + ", " + y + "," + z + " )" );
64- }
73+ }
6574 }
6675
6776
0 commit comments