是否可以在查看相机预览时知道手机指向哪个方向,还是必须像指南针一样将手机放平。
谢谢
最佳答案
是的——下面的代码应该可以完成这项工作
public class Test extends Activity implements SensorEventListener{
public static float swRoll;
public static float swPitch;
public static float swAzimuth;
public static SensorManager mSensorManager;
public static Sensor accelerometer;
public static Sensor magnetometer;
public static float[] mAccelerometer = null;
public static float[] mGeomagnetic = null;
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
@Override
public void onSensorChanged(SensorEvent event) {
// onSensorChanged gets called for each sensor so we have to remember the values
if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
mAccelerometer = event.values;
}
if (event.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) {
mGeomagnetic = event.values;
}
if (mAccelerometer != null && mGeomagnetic != null) {
float R[] = new float[9];
float I[] = new float[9];
boolean success = SensorManager.getRotationMatrix(R, I, mAccelerometer, mGeomagnetic);
if (success) {
float orientation[] = new float[3];
SensorManager.getOrientation(R, orientation);
// at this point, orientation contains the azimuth(direction), pitch and roll values.
double azimuth = 180 * orientation[0] / Math.PI;
double pitch = 180 * orientation[1] / Math.PI;
double roll = 180 * orientation[2] / Math.PI;
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
accelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
magnetometer = mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_GAME);
mSensorManager.registerListener(this, magnetometer, SensorManager.SENSOR_DELAY_GAME);
}
@Override
protected void onPause() {
super.onPause();
mSensorManager.unregisterListener(this, accelerometer);
mSensorManager.unregisterListener(this, magnetometer);
}
}
关于安卓方向传感器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3972912/
文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
我有一个pdf文件。我想将其所有页面向右旋转90度。如何使用Prawngem实现此目的?当我尝试使用现有的pdf作为模板并尝试对其进行旋转时,它不起作用。我徒劳地尝试了以下。require'prawn/core'require'prawn/layout'require'prawn/measurement_extensions'pdf=Prawn::Document.new(:page_size=>[4.in,6.in],:template=>'orig.pdf',:layout=>'potrait')do|p|p.rotate(90)endpdf.render_file("./test
快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目
在网络上浏览了大量文档后,iPhone似乎总是以480x360的纵横比拍摄视频,并在视频rails上应用变换矩阵。(480x360可能会改变,但对于给定设备而言始终相同)这是一种在iOS项目中修改ffmpeg源代码并访问矩阵http://www.seqoy.com/correct-orientation-for-iphone-recorded-movies-with-ffmpeg/的方法这是在iOS-4中查找转换矩阵的更清晰的方法Howtodetect(iPhoneSDK)ifavideofilewasrecordedinportraitorientation,orlandscape.
我想对对象的局部轴施加一个向前的力,但我使用的引擎只允许我在全局轴上施加一个力。我可以访问对象的全局旋转作为四元数。然而,我不熟悉使用quats(通常未受过高等数学训练)。这些信息是否足以抵消沿所需轴施加的力?怎么办?例如,要在全局范围内推进,我会这样做:this.entity.rigidbody.applyForce(0,0,5);但是为了保持沿物体局部轴施加的力,我需要根据物体的旋转四轴以不同的方式沿轴分布施加的力,例如:w:0.5785385966300964x:0y:-0.815654993057251z:0我研究了四元数试图解决这个问题,但是观看有关它们是什么以及为什么使用它
我正在尝试更改BootstrapDatetimepicker的方向我什至尝试使用this但我得到:optionorientationisnotrecognized我在html中对datetimepicker的定义是:在javascript中我有这样的东西来改变语言:$('.input-group.date').datetimepicker({locale:"es",});我尝试添加location:'bottomauto'但没有任何反应。 最佳答案 在阅读了很多帖子和文档之后,我成功了!对于future的访客,可以阅读所有可用选项h
你好,我正在尝试创建一个谷歌地图链接,该链接将重定向到带有方向的map。我将在链接中传递坐标。这是我的代码:varlatDes=this.items[id].LongitudeWD;varlongDes=this.items[id].LatitudeWD;varurl="https://www.google.com/maps/dir/?api=1";varorigin="origin="+tempLatitude+","+tempLongitude;vardestination="&destination="+latDes+","+longDes;varnewUrl=newURL(ur
我在GooglemapAPI中添加单个标记时遇到问题。我搜索了很多类似以下链接,ChangeindividualmarkersingooglemapsdirectionsapiV3.但是我无法在我的代码上实现相同的功能。在suppressMarkers:true的帮助下,我能够阻止默认标记。现在只显示路线指示。现在我如何添加起点和终点的制造商。以下是我的代码。functionGoogleMap_selected(){varlattitude_value=document.getElementById('slectedLat').value;varlongitude_value=docu
我有2个地方的纬度/经度。如何从googlemapsapi获取路线?我想显示map和方向文本。 最佳答案 vardirectionDisplay;vardirectionsService=newgoogle.maps.DirectionsService();varmap;functioninitialize(){directionsDisplay=newgoogle.maps.DirectionsRenderer();varmyOptions={mapTypeId:google.maps.MapTypeId.ROADMAP,}map