Ускорение силы тяжести всегда будет присутствовать. Похоже, вы вычитаете это значение из одной из осей, когда устройство находится в определенной ориентации.
Что вам нужно будет сделать, чтобы обнаружить жесты, так это обнаружить крошечную разницу, которая на мгновение появляется от ускорения под действием силы тяжести, когда устройства начинают двигаться. Вы не сможете определить, является ли устройство неподвижным или движущимся с постоянной скоростью, но вы сможете определить, вращается ли оно или ускоряется.
Значения (x, y, z) дают вам вектор, который указывает направление ускорения. Вы можете вычислить (квадрат) длины этого вектора как x ^ 2 + y ^ 2 + x ^ 2. Если это так же, как когда устройство находится в состоянии покоя, то вы знаете, что устройство не ускоряется, но в определенной ориентации. (Либо в состоянии покоя, либо с постоянной скоростью.)
Чтобы обнаружить движение, вы должны заметить кратковременное изменение длины этого вектора, когда устройство начинает двигаться, и снова, когда оно останавливается. Это изменение, вероятно, будет крошечным по сравнению с гравитацией.
Вам нужно будет сравнить ориентацию вектора ускорения во время движения, чтобы определить направление движения. Обратите внимание, что вы не сможете различить каждый жест. Например, перемещение устройства вперед (и остановка там) имеет тот же эффект, что и слегка наклонить устройство, а затем вернуть его в ту же ориентацию.
Легче обнаружить жесты, которые меняют ориентацию устройства. Другие жесты, такие как удар, будет сложнее обнаружить. Они будут отображаться как изменение длины вектора ускорения, но величина изменения, вероятно, будет крошечной.
EDIT:
Приведенное выше обсуждение относится к нормализованным значениям x, y и z. Вам нужно будет определить значения, которые нужно вычесть из показаний, чтобы получить вектор. Из комментария выше, похоже, что 766 - это «нулевые» значения для вычитания. Но они могут быть разными для разных осей вашего устройства. Измерьте показания с устройствами, ориентированными во всех шести направлениях. То есть получить максимальные и минимальные значения для x, y и z. Центральные значения должны быть на полпути между крайностями (и, надеюсь, 766).
Некоторые жесты будут иметь контрольные подписи.
Падение устройства на мгновение уменьшит вектор ускорения, а затем на мгновение увеличит его, когда устройство остановится.
Повышение устройства на мгновение увеличит вектор, а затем на мгновение уменьшит его.
Движение вперед на мгновение увеличит вектор, но немного наклонит его вперед, затем снова увеличит на мгновение, но наклонит назад, когда устройство остановится.
В большинстве случаев длина вектора будет равна ускорению силы тяжести.