phoneGap得到加速度Accelerometer

8 篇文章 0 订阅

phoneGap可以通过对象accelerometer得到手机的加速度, accelerometer对象可以直接使用,也可以通过全写"navigator.accelermometer"得到。

加速度是矢量,accelerometer得到的加速度是把垂直手机方向当z轴, 手机平面上分x与y轴, 如下图:



navigator.accelerometer.getCurrentAcceleration(onSuccess,onError);

参数:onSuccess: 得到加速度成功后的回调函数,再通过该回调用函数的参数可以得到加速度的三个分量(x,y,z)值,也能得到时间
参数: onError:     得到加速度失败后的回调用函数

例:

<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">

	// 等待加载PhoneGap   
	document.addEventListener("deviceready", onDeviceReady, false); 

	// PhoneGap加载完毕
	function onDeviceReady() {
		navigator.accelerometer.getCurrentAcceleration(onSuccess, onError);
	}

	// onSuccess: 返回当前加速度数据的快照
	function onSuccess(acceleration) {
		alert('Acceleration X: '+acceleration.x+'\n'+
		'Acceleration Y: '+acceleration.y+'\n'+
		'Acceleration Z: '+acceleration.z+'\n'+
		'Timestamp: '+acceleration.timestamp+'\n');
	}

	// onError: 返回加速度数据失败
	function onError() {
		alert('onError!');
	}
	
</script>
</head>
<body>
	<h1>Example</h1>
	<p>getCurrentAcceleration</p>
</body>
</html>

   运行结果如图:


点击这里下载上面完整项目例示

在固定的时间间隔周期性 获取沿x、y和z轴的加速度。
复制
var watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, [options]); //开始
navigator.accelerometer.clearWatch(watchID);  //结束   参数watchID是上面函数的返回值
参数:

(1)onSuccess和onError与函数getCurrentAcceleration中的参数意思相同

(2)options 定制检索加速度计的可选参数 {frequency:多少毫秒获取一次Acceleration。(数字类型)(默认值:10000)}

例:

<!DOCTYPE html>
<html>
<head>
<title>Acceleration Example</title>
	
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="utf-8">

	// watch id 是当前“watchAcceleration”的引用
	var watchID = null;
	
	// 等待加载PhoneGap
	document.addEventListener("deviceready", onDeviceReady, false);
	
	// PhoneGap加载完毕
	function onDeviceReady() {
		startWatch();
	}
	
	// 开始监视加速度
	function startWatch() {
	
	// 每隔3秒钟更新一次加速度数据
	var options = { frequency: 3000 };
	
	watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
	}
	
	// 停止监视加速度
	function stopWatch() {
		if (watchID) {
			navigator.accelerometer.clearWatch(watchID);
			watchID = null;
		}
	}
	
	// onSuccess: 获取当前加速度数据的快照
	function onSuccess(acceleration) {
		var element = document.getElementById('accelerometer');
		element.innerHTML = 'Acceleration X:'+acceleration.x+'<br />'+
			'Acceleration Y:'+acceleration.y+'<br />'+
			'Acceleration Z:'+acceleration.z+'<br />'+
			'Timestamp:'+acceleration.timestamp+'<br />';
	}
	
	// onError: 获取加速度失败
	function onError() {
		alert('onError!');
	}
	
</script>
</head>
<body>
	<div id="accelerometer">Waiting for accelerometer...</div>
</body>
</html>

    运行结果如下图:

    


     点击这里下载上面完整项目例示


 







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值