Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从手机获取加速度计值,最佳方法?_Android_Python - Fatal编程技术网

Android 从手机获取加速度计值,最佳方法?

Android 从手机获取加速度计值,最佳方法?,android,python,Android,Python,我对python非常陌生,我想制作一些应用程序,允许我使用在windows中从手机获得的加速计值。 使用SL4A(python for android),我创建了客户端和服务器脚本,从加速计读取值,并通过套接字将它们发送到服务器(在pc上运行) 这是我的服务器代码(windows pc): 这是我的客户端代码(android手机): 如果我想读取一次这些值,这很好,但我想知道如何从这里开始,我希望能够使用这些值来控制游戏和其他应用程序 感谢阅读:)我的想法是首先尝试设备的不同运动(例如,快速向上

我对python非常陌生,我想制作一些应用程序,允许我使用在windows中从手机获得的加速计值。 使用SL4A(python for android),我创建了客户端和服务器脚本,从加速计读取值,并通过套接字将它们发送到服务器(在pc上运行)

这是我的服务器代码(windows pc):

这是我的客户端代码(android手机):

如果我想读取一次这些值,这很好,但我想知道如何从这里开始,我希望能够使用这些值来控制游戏和其他应用程序


感谢阅读:)

我的想法是首先尝试设备的不同运动(例如,快速向上运动),收集输出值,然后根据特定的加速度计值范围(类似的运动应该有类似的值范围)简单地触发事件(或游戏中需要触发的任何事件).

事实上,我还不太清楚,我需要一个不断更新的变量,但将'readAcc()'与'send'命令放在一个循环中仍然只会给我一个变量。到目前为止,我只能够发送一个字符串而不重新启动脚本。经过一些测试后,我认为问题在于我只能在建立连接后运行clientsocket.send()一次。
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
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