Старый вопрос, но все еще актуален для более нового оборудования, так что здесь идет ...
Ваша самая большая проблема заключается в том, что один акселерометр не может определить разницу между ускорением, вызванным движением, и ускорением, вызванным гравитацией и наклоном. Чтобы изолировать движение, вам нужен второй датчик. Ваша проблема очень похожа на ту, с которой сталкиваются люди, создающие Segway-подобные балансировочные роботы, и решение почти такое же:
Гироскоп. Я считаю, что телефоны Samsung Galaxy S имеют гироскопы, но я не уверен, являются ли они "настоящими" гироскопами MEMS, или просто имитируются каким-то образом, что может не соответствовать задаче.
Камера. Это моя непроверенная теория, но если бы вы могли каким-либо образом отразить достаточно света от стола со вспышкой (на телефонах со светодиодной вспышкой), или, возможно, использовали коврик для мыши с каким-то рисунком свечения в темноте, и вы могли бы Заставьте камеру делать видеоизображение в низком разрешении, когда она узнает, что она не в фокусе, вы, вероятно, могли бы сделать распознавание образов на размытых не сфокусированных каплях достаточно хорошо, чтобы определить, движется ли телефон или неподвижно, и, возможно, получить некоторое чувство скорости и / или или направление. Объедините низкокачественные данные из видеопотока с размытой камеры в реальном времени с относительно высоким разрешением с акселерометров, и у вас может получиться что-то, что работает.
Однако, прежде чем вы начнете беспокоиться о 1 или 2, убедитесь, что вы готовы решить более серьезную проблему: эмуляцию мыши HID bluetooth. Это возможно (но может потребоваться рутированный телефон), и по крайней мере одно приложение в Android Market делает это, но это не тривиальная задача. Вы не собираетесь решать ЭТУ проблему днем, и вам, вероятно, следует попытаться решить ее хотя бы достаточно хорошо, чтобы эмулировать поддельную мышь и убедительно связать ее с компьютером, ожидающим настоящую Bluetooth-мышь, прежде чем вы даже столкнетесь с проблемой акселерометра. , Оба варианта сопряжены с высокой степенью риска, поэтому не пытайтесь полностью завершить одно задание, прежде чем начинать другое, но не тратьте слишком много времени на то, пока вы не получите достаточно хорошее представление о масштабах проблемы и не будете знать, что вы делаете. попасть в.
Существует альтернатива, если bluetooth HID слишком много ... существует довольно много проектов с открытым исходным кодом, которые включают пропуск bluetooth HID и использование его в качестве последовательного порта для связи с сервером, работающим на ПК (или привязанным). напрямую через usb с ADB). AFAIK, ни один из них не обладает особенно хорошими возможностями «телефон как мышь», если только вы не рассматриваете использование телефона в качестве сенсорной панели в качестве «мыши».