@Override
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
int orientation = Configuration.ORIENTATION_UNDEFINED;
float X = -values[0];
float Y = -values[1];
float Z = -values[2];
float magnitude = X * X + Y * Y;
// Don't trust the angle if the magnitude is small compared to the y
// value
// 这里是关键,来至于谷歌官方
if (magnitude * 4 >= Z * Z) {
float OneEightyOverPi = 57.29577957855f;
float angle = (float) Math.atan2(-Y, X) * OneEightyOverPi;
orientation = 90 - (int) Math.round(angle);
// normalize to 0 - 359 range
while (orientation >= 360) {
orientation -= 360;
}
while (orientation < 0) {
orientation += 360;
}
}
if(orientation < 45 || orientation >= 315){
screentDirection = 0;
}else if(orientation >= 45 && orientation < 135){
screentDirection = 90;
}else if(orientation >= 135 && orientation < 225){
screentDirection = 180;
}else{
screentDirection = 270;
}
} @Override
public void onSensorChanged(SensorEvent event) {
float[] values = event.values;
int orientation = Configuration.ORIENTATION_UNDEFINED;
float X = -values[0];
float Y = -values[1];
float Z = -values[2];
float magnitude = X * X + Y * Y;
// Don't trust the angle if the magnitude is small compared to the y
// value
// 这里是关键,来至于谷歌官方
if (magnitude * 4 >= Z * Z) {
float OneEightyOverPi = 57.29577957855f;
float angle = (float) Math.atan2(-Y, X) * OneEightyOverPi;
orientation = 90 - (int) Math.round(angle);
// normalize to 0 - 359 range
while (orientation >= 360) {
orientation -= 360;
}
while (orientation < 0) {
orientation += 360;
}
}
if(orientation < 45 || orientation >= 315){
screentDirection = 0;
}else if(orientation >= 45 && orientation < 135){
screentDirection = 90;
}else if(orientation >= 135 && orientation < 225){
screentDirection = 180;
}else{
screentDirection = 270;
}
}
分享到:
相关推荐
Vue集成实现拍照,选择本地图片、定位、扫一扫。手机app
带OTG功能安卓设备读取USB外设信息 可以通过AS调试读出 , 过滤关键字 "Li_Debug" , 一次显示使用USB外设 格式举例 厂商/VendorId: 0x10C4 产品/ProductId: 0xEA60 设备/DeviceId: 0x7D2 接口数/InterfaceCount: 1 ...
此示例展示了如何捕获 Android 移动设备(如手机或平板电脑)的方向。 方向定义为三个角度量的组合:方位角、俯仰角和滚转角。 该示例显示了如何访问当前的方向值,还演示了如何绘制记录的方向值。 此示例要求用户...
React Native Heading 在 iOS 或 Android 上获取设备航向信息 What 以度数报告设备方向,0-360,0 为北。 示例 const { DeviceEventEmitter } = require('react-native'); const ReactNativeHeading = require('...
2、手机设备中通过获取陀螺仪 gyro 数据旋转为 镭射线的旋转数据 3、镭射使用(这里使用LookAt方式,具体见代码)上边获取到的旋转数据,然后作为射线发射方向,碰撞到物体的距离作为 镭射实体的长度 4、物体...
设计内容可涵盖:物联网应用(城市交通,医疗,港口物流,环境监测,多网融合等 )、消费类电子、数字电视、GPS导航、智能手机、数字家电、多媒体、视频编码解码、 图像处理、安防监控、无线通讯、信息识别、工业...
通过此提交,您可以直接从计算机上运行的 MATLAB 访问移动设备的加速度计、磁力计、位置、方向和指南针信息。 您可以访问当前和记录的传感器数据,并且可以使用 MATLAB 来可视化和分析移动传感器数据或根据获取的...
套接字/ OSC /设备示例-IMGD 5100 用您的IP或<your>.local替换vengeance.local 安装并运行mkcert(对于Windows,我使用Chocolatey)确保将... 单击获取加速度计权限按钮 观看设备定向数据进入您的node.js服务器!
该参考设计还包含全套 BLE 连接设计,可轻松连接到已启用 BLE 的智能手机、平板电脑等设备 特性采用 AFE4400 通过手掌测量脉搏 采用 AFE4300 测量心率和呼吸率 采用 MSP430F5528 MCU 保留每次测量的算法数据 采用 TI...
使用的概念Android Layout支持不同的设备内容解析器和游标适配器,用于将数据放入数据库并更新listView 同步适配器,可有效地获取数据。 用于生成正方形图块的自定义视图。 异步任务,用于获取与tariler和评论相关...
3.5 获取手机分辨率 3.6 样式修饰处理 3.7 按钮事件响应 3.8 页面间的转换 3.9 activity调用 3.10 多个activity间的数据传递 3.11 将数据返回到前一个activity 3.12 对话框交互处理 3.13 文字颜色置换 3.14 文字字体...
互联网:互联网是一个全球性的网络系统,它连接了世界各地的计算机和设备,使得人们可以随时随地获取信息、交流思想、共享资源。互联网的出现极大地拓宽了人们的视野和思维方式,改变了人们的生活方式和社会结构。 ...
互联网:互联网是一个全球性的网络系统,它连接了世界各地的计算机和设备,使得人们可以随时随地获取信息、交流思想、共享资源。互联网的出现极大地拓宽了人们的视野和思维方式,改变了人们的生活方式和社会结构。 ...
互联网:互联网是一个全球性的网络系统,它连接了世界各地的计算机和设备,使得人们可以随时随地获取信息、交流思想、共享资源。互联网的出现极大地拓宽了人们的视野和思维方式,改变了人们的生活方式和社会结构。 ...
互联网:互联网是一个全球性的网络系统,它连接了世界各地的计算机和设备,使得人们可以随时随地获取信息、交流思想、共享资源。互联网的出现极大地拓宽了人们的视野和思维方式,改变了人们的生活方式和社会结构。 ...
越来越多的人希望在移动的过" "程中高速地接入互联网,获取急需的信息,完成想做的事情。所以,移动互联网的" "出现是历史的必然。 " "而Android是移动互联下诞生的产物。Android:是Google于2007年11月推出的一款" ...
使用安卓手机作为控制端,通过无线网络对监控平台进行移动方向、速度的控制,平台上的摄像头实时采集视频图像信号并通过无线WiFi网络将视频信号实时传输到手机端观看,然后可实时拍照录像并可实时存储。由于监控端可...
Android 测试小工具基于Maven的Java Swing GUI桌面应用开发并集成adb命令完成应用程序信息快速查看,工具的主要用途用于快速获取安卓设备当前正在运行的最顶层APP的相关信息,如:PackName、PackBit、Launchable_...
在此之前,也在网上收集整理了一些物联网的相关知识,也从其他 兄弟院校上获取了一些资料,整理成如下初步报告,以后半年再加调研,争取完成一份 物联网专业的人才培养方案。 1. 物联网产业及其产业体系构造 物联网...
5.14 获取手机现存桌面 5.15 文件资源管理器再进化 5.16 取得目前File与Cache的路径 5.17 打开/关闭WiFi服务 5.18 取得SIM卡内的信息 5.19 调用拨号按钮 5.20 DPAD按键处理 5.21 任务管理器正在运行的程序 5.22 动态...