You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pydroid3中获取GPS与手机传感器数据?

在Pydroid3中获取GPS及光线传感器数据的解决方案

问题原因分析

你遇到的ModuleNotFoundError: No module named 'plyer.platforms.linux.gps'是因为Pydroid3的环境被plyer误判为Linux平台,而非Android平台,导致加载了错误的平台适配模块。

解决步骤及代码示例

1. 配置应用权限

打开手机设置→应用→Pydroid3→权限,确保开启位置权限(选择高精度模式)和传感器权限。

2. 安装/更新plyer

在Pydroid3的终端中执行:

pip install --upgrade plyer

3. 修复平台识别问题并编写完整代码

手动指定plyer使用Android平台,同时结合GPS和光线传感器的读取逻辑:

import os
# 强制指定为Android平台,避免误判
os.environ['PLYER_PLATFORM'] = 'android'

from plyer import gps, sensors
import time

# GPS位置回调
def gps_callback(**kwargs):
    lat = kwargs.get('lat', '未知')
    lon = kwargs.get('lon', '未知')
    print(f"GPS: 纬度 {lat}, 经度 {lon}")

# 光线传感器数据回调
def light_sensor_callback(data):
    light_intensity = data['values'][0]
    print(f"光线强度: {light_intensity} lux")

try:
    # 启动GPS,设置1秒更新一次,移动1米触发更新
    gps.configure(on_location=gps_callback)
    gps.start(minTime=1000, minDistance=1)

    # 启动光线传感器,1秒读取一次
    sensors.configure(sensor='light', on_change=light_sensor_callback)
    sensors.start(sensor='light', period=1000)

    # 保持脚本运行,否则会立即终止
    while True:
        time.sleep(1)

except Exception as err:
    print(f"运行错误: {str(err)}")
finally:
    # 停止传感器和GPS
    gps.stop()
    sensors.stop(sensor='light')

额外注意事项

  • 如果仍有报错,尝试更新Pydroid3到最新版本,旧版本可能存在环境变量识别问题。
  • 测试时尽量在室外开阔区域,确保GPS能正常定位;光线传感器测试可通过遮挡手机光线感应区域观察数值变化。

内容的提问来源于stack exchange,提问作者user22573647

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 03:16:08