我安装了Qpython(Python 2.7)和plyer on may android手机(三星Galaxy J5,带加速度计 - 没有陀螺仪)。我想阅读加速度计值。我只需在控制台上输入三行代码:
from plyer.facades import Acceleromter
acc = Accelerometer()
print acc.acceleration
我得到NotImplementedError。我错过了什么?
编辑:其他调查结果:
调用加速度计的另一种方法如下。而不是通过外墙,直接从plyer导入加速度计(小a),所以:
from plyer import accelerometer
这个命令看起来很好,没有错误。但如果我质疑加速度计只是键入
accelerometer
在python控制台上,我得到了很多jnius错误,以:结尾
File "jnius_export_class.pxi", line 44, in jnius.jnius.MetaJavaClass.__new__(jnius/jnius.c:13255)
SystemError: NULL result without error in PyObject_call
但它给出了模块的十六进制地址,所以sw就在那里。但很可能无法访问hw。
我检查过CPU-Z应用程序已关闭。但有可能以某种方式CPU-z阻止安装设置的访问,即使它已关闭?当我打开它时,我可以看到加速计正在工作。
答案 0 :(得分:0)
根据documentation,您必须首先启用加速度计。如果不这样做,它将抛出此代码中提供的NotImplementedError
异常:
def enable(self):
'''Activate the accelerometer sensor. Throws an error if the
hardware is not available or not implemented on.
'''
self._enable()
在代码的下方,你会看到:
def _enable(self):
raise NotImplementedError()
我可能没有完全解释自己,但在检查此代码时,您应该能够确定导致此错误的原因。主要是,应用程序(QPython)或硬件可能不支持此功能。