我想通过使用TYPE_ACCELEROMETER传感器来获取手机角度.

我的目标是仅在手机倾斜后获取角度值.

它有效,但问题是

当我把手机朝上放在桌子上时,

它仍然说isLandscape = true;

private boolean isLandscape;

mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);

mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(

Sensor.TYPE_ACCELEROMETER),1000000);

private final SensorEventListener mSensorListener = new SensorEventListener() {

@Override

public void onSensorChanged(SensorEvent mSensorEvent) {

float X_Axis = mSensorEvent.values[0];

float Y_Axis = mSensorEvent.values[1];

double angle = Math.atan2(X_Axis, Y_Axis)/(Math.PI/180);

if(!isLandscape) {

if(angle > 80) {

Orientation = 90;

isLandscape = true;

}

}

else

{

if(Math.abs(angle) < 10) {

Orientation = 0; //portrait

isLandscape = false;

}

}

}

public void onAccuracyChanged(Sensor sensor, int accuracy) {

}

};

只有在手机倾斜后才能获得手机角度的最佳方法是什么?

我很抱歉英语不好,

谢谢.

解决方法:

我不知道我是否理解你的问题,但我认为你希望你的应用程序只在手机处于人像状态时计算倾斜角度,首先你需要取mSensorEvent.values [0]的值,在这种情况下如果处于待机状态的手机将返回0,则向右倾斜将为负值,从1到9,左侧为正.

那么你必须在mSensorEvent.values [1]值介于9和7之间的情况下完成所有这些(例如9是完美的立场).确保设备处于纵向位置.

如果需要度角度值,可以将mSensorEvent.values的浮点值乘以10.

我希望这能帮助你

UPDATE ***

你可以试试这个:

private boolean isLandscape;

@Override

public void onSensorChanged(SensorEvent mSensorEvent) {

float X_Axis = mSensorEvent.values[0];

float Y_Axis = mSensorEvent.values[1];

if((X_Axis <= 6 && X_Axis >= -6) && Y_Axis > 5){

isLandscape = false;

}

else if(X_Axis >= 6 || X_Axis <= -6){

isLandscape = true;

}

}

标签:android,android-sensors,android-orientation

来源: https://codeday.me/bug/20190528/1169842.html

传感器 倾斜角 android,android – 如何使用sensor / s获得手机的角度/度数?相关推荐

  1. pm1 android,Android Sensor SDK

    Android Sensor SDK Step By Step 1.新建工程 Android Studio配置 将sensoro-sensor-kit.jar包放入道libs文件夹下,然后在当前工程下 ...

  2. Android层面上对sensor及event事件的处理

    可能这篇总结写得会有一点凌乱,一会讲sensor,一会又讲event的.但是把两者摆在一起也是有原因的,sensor的处理是event事件的基础上实现的,正是因为sensor对event的依赖性,所以 ...

  3. android APK 调用G—sensor驱动的过程

    android上层应用apk到G-sensor driver的大致流程: Android HAL层,即硬件抽象层,是Google响应厂家"希望不公开源码"的要求推出的新概念 1,源 ...

  4. android 齐刘海编程,2018十大手机功能盘点齐刘海泛滥成灾

    是已经凉了的VR还是噱头大于实际的无线充电技术,下面为大家盘点十种今年最有可能普及的十大手机技术,看看其中有没有值得让你等待的新技术. 10:刘海屏 Huawei/华为 P20 pro全面屏mate官 ...

  5. Android - Android Studio 解决访问被墙的问题

    Android - Android Studio 解决访问被墙的问题 参考文章: (1)Android - Android Studio 解决访问被墙的问题 (2)https://www.cnblog ...

  6. OpenCV2.4.9 For Android + Android Studio (with gradle)配置教程

    OpenCV2.4.9 For Android + Android Studio (with gradle)配置教程 10 回复 / 9501 浏览 本页底部本帖地址 4king2 年前 - 2014 ...

  7. Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现

    这次我们将代码的重点放在火箭升空的效果上,因此简单起见,就直接在模仿360手机卫士悬浮窗的那份代码的基础上继续开发了,如果你还没有看过那篇文章的话,建议先去阅读 Android桌面悬浮窗效果实现,仿3 ...

  8. [Android]Android端ORM框架——RapidORM(v2.1)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6020412.html [Android]Android端ORM ...

  9. [Android] Android开发优化之——使用软引用和弱引用

    Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期.这四种级别由高到低依次为:强引用.软引用.弱引用和虚引用. 这里重点介绍一下软引用和弱引用. 如 ...

最新文章

  1. R语言psych包的corr.test函数计算相关性并给出所有相关性的显著性(Correlation matrix and tests of significance via corr.test())
  2. java双等比较值_java – 执行双值相等比较时,应该是epsilon值
  3. 点云分割 PointCloudSegmentation测试笔记
  4. MySQL前缀索引与覆盖索引:前缀索引对于索引精简 覆盖索引对于查询数据索引化
  5. android+java.lang.VerifyError
  6. git revert reset
  7. luogu P2344 奶牛抗议 DP 树状数组 离散化
  8. MSExchangeIS ID8528 日志提示邮箱已满报警
  9. 华为路由器OSPF+RIP+静态路由配置实例
  10. 解决mac压缩包在windows下解压乱码问题。
  11. 一、区块链技术与应用-密码学原理
  12. Android 4.1 Netd详细分析(二)源文件/模块/基础类统领
  13. 编程的本质是逻辑性思维
  14. 静态成员和非静态成员的区别是什么?
  15. android ksoap调用webservice批量上传多张图片
  16. 朱小坤:以科学发展观引领天工国际逆势跨越发展
  17. 手把手教你学财报01
  18. epidata打开文件的位置怎么可以更新
  19. 前端踩坑之TinyMCE富文本编辑器表情插件报错解决
  20. 【公告】变更!采用动态复权作为回测复权机制

热门文章

  1. UIScrollView可滚动内容大小歧义
  2. win11怎么添加小组件 window11添加小组件的设置方法
  3. 图像转svg,及绘制svg图像
  4. Aubo i5真机 ros - melodic 版驱动下载 [ 驱动下载 ]
  5. 计算机一级信息技术基础知识,计算机一级考试之信息技术基础.doc
  6. 移动端上下拖动调整顺序效果_HTML5 移动端的上下左右滑动问题
  7. Linux:sudo命令实例讲解
  8. 四轮驱动机器人(SSMR)的运动规律
  9. 奥特曼传奇英雄存档丢了怎么找回_热血传奇:法师前期跨级刷怪到底划不划算?...
  10. 怎么解锁blockinput锁定的键盘_电脑键盘上的三个灯分别是什么作用?虽然很简单,但是很实用...