我是python的新手,我想制作一些应用程序,允许我使用我从手机中获取的加速度计值。 使用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
如果我想读取一次值,这可以正常工作,但我想知道如何从这里开始,我希望能够使用这些值来控制游戏和其他应用程序。
感谢阅读:)
答案 0 :(得分:1)
我的想法是首先尝试设备的不同运动(例如,快速向上运动),收集输出值,然后根据特定情况简单地触发事件(或任何你需要在游戏中触发的事件)加速度计值的范围(类似的运动应具有相似的值范围)。