It's a long way to go, not just to survive but to love.
This content: Android Gravity sensor
First,Sensormannager sensor Management Objects
1. Get Sensormannager
All the sensors in the phone need to be accessed via Sensormannager, and the Getsystemservice (Sensor_service) method can be used to get the sensor management object of the current phone.
SM = (Sensormanager) getsystemservice (Sensor_service);
2. Obtainsensor target types of values (getsensorlist () method to obtain )
list<sensor> sensors = sm.getsensorlist (sensor.type_temperature);
3, To achieve the sensor sensors status monitoring function < Span style= "Color:rgb (51,51,51)" >
public void onaccuracychanged (Senso Sensor,int accuracy);
public void onsensorchanged ( Sensorevent event);
public void onsensorchanged (Sensorevent e) {x = E.values[sensormanager.data_x];y = E.values[sensormanager.data_y];z = E.VALUES[SENSORMANAGER.DATA_Z];}
4, Registered Sensorlistener
<pre name= "code" class= "Java" >sm.regesterlistener (Sensoreventlistener Listener, sensor sensor, int rate);
The first parameter: Monitor the Sensor event, the second parameter is the value of the sensor target type, and the third parameter is the precision density of the delay (detection) time. The precision parameters of the delay time are as follows:
parameters |
delay time |
s Ensormanager.sensor_delay_fastest |
0ms |
sensormanager.sensor_delay_game |
20ms |
sensormanager.sensor_delay_ui |
60ms |
sensormanager.sensor_delay_normal "/ span> |
200ms |
since the service of sensor sensors is related to the consumption of battery parameters, and also affects the efficiency of the processing, so the balance between the consumption of battery and processing efficiency, set the sensor detection delay time is an important learning, The appropriate settings need to be made according to the needs of the application system. The hardware detection components of sensor sensing sensors are provided by different vendors. You can use the sensor's Getvendor (), sensor () GetName () and sensor's getveesrion () method to obtain the manufacturer's name, product, and version.
5. Cancellation of registrationSm.unregisterlistener (Sensoreventlistener listener)
Here is a gravity sensing application
Here is the Res/layout/activity_main.xml layout file:
<relativelayout xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= "http// Schemas.android.com/tools " android:layout_width=" match_parent " android:layout_height=" Match_parent " tools:context= "Com.example.test1.mainactivity$placeholderfragment" > <textview android:id= "@ +id/tv " android:layout_width=" match_parent " android:layout_height=" wrap_content " android:textsize= "30DP"/></relativelayout>
here is the Mainactivity.java main interface file:
public class Mainactivity extends Activity {private TextView tv;private sensormanager sm; Sensor sensor;private float x, y, z; @Overrideprotected void onCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.activity_main); TV = (TextView) Findviewbyid (r.id.tv); sm = ( Sensormanager) Getsystemservice (sensor_service); SENSOR = Sm.getdefaultsensor (Sensor.type_accelerometer); Sensoreventlistener listener = new Sensoreventlistener () {@Overridepublic void onsensorchanged (Sensorevent e) {x = E.valu Es[sensormanager.data_x];y = E.values[sensormanager.data_y];z = E.values[sensormanager.data_z];settitle ("x=" + (int) x + "," + "y=" + (int) y + "," + "z=" + (int) z); Tv.settext ("x=" + (int) x + "," + "y=" + (int) y + "," + "z=" + (int) z) ;} @Overridepublic void onaccuracychanged (Sensor arg0, int arg1) {}}; Sm.registerlistener (listener, sensor, sensormanager.sensor_delay_game); }}
This is where we go, take your time and enjoy it
Advanced two Android Gravity sensor (ii)