我是python的新手,我想开发一些应用程序,使我可以在Windows中使用从手机获得的加速度计值。
使用SL4A(适用于Android的python),我创建了客户端和服务器脚本,以从加速度计读取值并将其通过套接字发送到服务器(在PC上运行)。
这是我的服务器代码(Windows PC):
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serversocket.bind(('', 5000))
serversocket.listen(5)
while True:
connection, address = serversocket.accept()
buf = connection.recv(64)
if len(buf) > 0:
print buf
这是我的客户代码(Android手机):
import android, socket, time
droid = android.Android()
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(('192.168.2.6', 5000))
def readAcc():
dt = 100
endTime = 300
timeSensed = 0
droid.startSensingTimed(2,dt)
while timeSensed <= endTime:
senout = droid.sensorsReadAccelerometer().result
time.sleep(dt/1000.0)
timeSensed+=dt
print senout
clientsocket.send(str(senout).strip('[]'))
readAcc()
droid.stopSensing()
输出示例:
1.8659877, 8.8259849999999993, 3.5412905000000001
如果我想一次读取值,则此方法很好,但是我想知道如何从这里开始,我希望能够使用值来控制游戏和其他应用程序。
谢谢阅读 :)
最佳答案
我的想法是先根据加速度计的特定范围尝试设备的不同运动(例如快速向上运动),收集输出值,然后简单地触发事件(或在游戏中需要触发的任何事情)值(相似的运动应具有相似的值范围)。
关于android - 从电话获取加速度计值,最好的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23042979/