| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Copyright 2013 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| |
| |
| <sample> |
| <name>JumpingJack</name> |
| <group>Wearable</group> |
| <package>com.example.android.wearable.jumpingjack</package> |
| |
| <minSdk>18</minSdk> |
| |
| <strings> |
| <intro> |
| <![CDATA[ |
| Uses the Gravity sensor to count how many jumping jacks you have performed. |
| ]]> |
| </intro> |
| </strings> |
| |
| <template src="base-build"/> |
| <template src="Wear"/> |
| <common src="logger"/> |
| <common src="activities"/> |
| |
| <metadata> |
| <status>PUBLISHED</status> |
| <categories>Wearable</categories> |
| <technologies>Android</technologies> |
| <languages>Java</languages> |
| <solutions>Mobile</solutions> |
| <level>INTERMEDIATE</level> |
| <icon>screenshots/web-icon.png</icon> |
| <screenshots> |
| <img>screenshots/jumping_jack.gif</img> |
| </screenshots> |
| <api_refs> |
| <android>android.hardware.SensorEvent</android> |
| <android>android.hardware.SensorEventManager</android> |
| </api_refs> |
| |
| <description> |
| <![CDATA[ |
| A basic sample showing how to use the Gravity sensor on the wearable device |
| by counting how many jumping jacks you have performed. |
| ]]> |
| </description> |
| |
| <intro> |
| <![CDATA[ |
| [SensorEventListener][1] offers you methods used for receiving notifications from the |
| [SensorManager][2] when sensor values have changed. |
| |
| This example counts how many times Jumping Jakcs are performed by detecting the value |
| of the Gravity sensor by the following code: |
| |
| ```java |
| @Override |
| public void onSensorChanged(SensorEvent event) { |
| detectJump(event.values[0], event.timestamp); |
| } |
| |
| private void detectJump(float xValue, long timestamp) { |
| if ((Math.abs(xValue) > GRAVITY_THRESHOLD)) { |
| if(timestamp - mLastTime < TIME_THRESHOLD_NS && mUp != (xValue > 0)) { |
| onJumpDetected(!mUp); |
| } |
| mUp = xValue > 0; |
| mLastTime = timestamp; |
| } |
| } |
| ``` |
| |
| The detectJump method above assumes that when a person is wearing the watch, the x-component of gravity |
| as measured by the Gravity Sensor is +9.8 when the hand is downward and -9.8 when the hand |
| is upward (signs are reversed if the watch is worn on the right hand). Since the upward or |
| downward may not be completely accurate, we leave some room and instead of 9.8, we use |
| GRAVITY_THRESHOLD (7.0f). We also consider the up <-> down movement successful if it takes less than |
| TIME_THRESHOLD_NS (2000000000 nanoseconds). |
| |
| [1]: http://developer.android.com/reference/android/hardware/SensorEventListener.html |
| [2]: http://developer.android.com/reference/android/hardware/SensorManager.html |
| ]]> |
| </intro> |
| </metadata> |
| </sample> |