我刚刚使用可以访问加速度计的cordova编写了我的第一款Android游戏。但它不起作用。确切地说,以下语句中的回调永远不会被执行:
this.watchID = navigator.accelerometer.watchAcceleration(this.onSuccess,this.onFailure,options);
我可以将代码跟踪到此语句中,并且语句执行时没有错误,返回有效的watchID。但是,onSuccess和onFailure方法永远不会被调用。这就像我的手机没有加速计或加速度计已被禁用。
我正在使用cordova命令行工具。
我认为这与我的代码有关,所以我创建了一个新的cordova项目并使用了示例cordova加速度计代码。
我发现在模拟器中调用onFailure的回调。我认为这是正确的,因为仿真器没有加速度计。但是,当我将示例应用程序转移到我的手机时,没有回调 - 成功或失败 - 曾被召唤过。
所以我认为我的代码没有错。也许这与我的手机有关。它是Nexus 4,刚刚升级到最新的Android(棒棒糖)。该游戏的API级别为19。
我是否必须做些什么来启用手机上的加速度计?我必须有一些重要的东西,因为我从模拟器中得到了一些东西,但实际的手机却没有。
提前感谢您的帮助。
肯