Cordova Compass API 给出错误代码 3
Cordova Compass API is giving error code 3
这个问题已经在 Whosebug here 上问过了,但我没有找到任何答案,所以我再次提出这个问题。请问有人可以回复吗?
我的代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Compass Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
navigator.compass.getCurrentHeading(onSuccess, onError);
}
function onSuccess(heading)
{
alert('Heading: ' + heading.magneticHeading);
}
function onError(compassError)
{
alert('Compass Error: ' + compassError.code);
}
</script>
</head>
<body>
<h1>Example</h1>
<p>getCurrentHeading</p>
</body>
</html>
您的设备没有磁传感器,或者供应商未在 OS 中实现对它的支持。
查看设备方向插件的Android源代码,启动代码是这样写的(为简洁起见修改):
List<Sensor> list = this.sensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
// If found, then register as listener
if (list != null)
this.setStatus(CompassListener.STARTING);
// If error, then set status to error
else
this.setStatus(CompassListener.ERROR_FAILED_TO_START);
不确定他们为什么在那里编写自己的错误代码 (public static int ERROR_FAILED_TO_START = 3
),但实际上他们应该按照文档中的定义报告 COMPASS_NOT_SUPPORTED
。
这个问题已经在 Whosebug here 上问过了,但我没有找到任何答案,所以我再次提出这个问题。请问有人可以回复吗?
我的代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Compass Example</title>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<script type="text/javascript" charset="utf-8">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady()
{
navigator.compass.getCurrentHeading(onSuccess, onError);
}
function onSuccess(heading)
{
alert('Heading: ' + heading.magneticHeading);
}
function onError(compassError)
{
alert('Compass Error: ' + compassError.code);
}
</script>
</head>
<body>
<h1>Example</h1>
<p>getCurrentHeading</p>
</body>
</html>
您的设备没有磁传感器,或者供应商未在 OS 中实现对它的支持。
查看设备方向插件的Android源代码,启动代码是这样写的(为简洁起见修改):
List<Sensor> list = this.sensorManager.getSensorList(Sensor.TYPE_ORIENTATION);
// If found, then register as listener
if (list != null)
this.setStatus(CompassListener.STARTING);
// If error, then set status to error
else
this.setStatus(CompassListener.ERROR_FAILED_TO_START);
不确定他们为什么在那里编写自己的错误代码 (public static int ERROR_FAILED_TO_START = 3
),但实际上他们应该按照文档中的定义报告 COMPASS_NOT_SUPPORTED
。