分析解决思路:
QQ视频聊天,画面顺时针倒转90度,不管屏幕如何旋转,都是画面顺时针倒转90度,由此可见是关于重力感应传感器的加速度传感器(Sensor.TYPE_ACCELEROMETER)的问题,但是由于并不是所有的社交软件视频聊天都存在顺时针倒转90度问题,所以需要根据包名判断来过滤。

而关于重力感应传感器的加速度传感器(Sensor.TYPE_ACCELEROMETER)的问题,其具体的处理逻辑代码在SystemSensorManager(extends SensorManager)类中。于是具体的问题修改代码如下:

frameworks/base/core/java/android/hardware/SystemSensorManager.java

public class SystemSensorManager extends SensorManager {······//定义全局私有变量private final String mPackageName;
public SystemSensorManager(Context context, Looper mainLooper) {synchronized (sLock) {if (!sNativeClassInited) {sNativeClassInited = true;nativeClassInit();}}mMainLooper = mainLooper;mTargetSdkLevel = context.getApplicationInfo().targetSdkVersion;mContext = context;//获取应用的包名mPackageName = context.getPackageName();mNativeInstance = nativeCreate(context.getOpPackageName());// initialize the sensor list 初始化所有的传感器for (int index = 0;; ++index) {Sensor sensor = new Sensor();if (!nativeGetSensorAtIndex(mNativeInstance, sensor, index)) break;mFullSensorsList.add(sensor);mHandleToSensor.put(sensor.getHandle(), sensor);}
}
······
// Called from native code.@SuppressWarnings("unused")@Overrideprotected void dispatchSensorEvent(int handle, float[] values, int inAccuracy, long timestamp) {final Sensor sensor = mManager.mHandleToSensor.get(handle);if (sensor == null) {// sensor disconnectedreturn;}SensorEvent t = null;synchronized (mSensorsEvents) {t = mSensorsEvents.get(handle);}if (t == null) {// This may happen if the client has unregistered and there are pending events in// the queue waiting to be delivered. Ignore.return;}// Copy from the values array.//判断是否是重力传感器的重力加速度,并且是QQ的包名if(sensor.getType() == Sensor.TYPE_ACCELEROMETER && mManager.mPackageName.equalsIgnoreCase("com.tencent.mobileqq")) {//定义一个临时变量,用来保存values[0](即X水平向右方向)的值float tmp;Log.e("mmk_debug", "x = " + values[0] + ",y = " + values[1] + ",z = " + values[2]);//临时保存values[0]的值tmp = values[0];//把values[1]的相反数(方向)的值赋值给values[0](即X水平向右方向)的值values[0] = -values[1];//临时保存values[0]的值赋予给values[1](即Y竖直向上方向的值)values[1] = tmp;}System.arraycopy(values, 0, t.values, 0, t.values.length);t.timestamp = timestamp;t.accuracy = inAccuracy;t.sensor = sensor;
···
}
}

如上代码就解决了QQ视频聊天,画面顺时针倒转90度问题。值得一提的是,当画面不是顺时针倒转90度时,如上解决方法不通用,需要做相应的改变,但是可以根据上面添加的Log输出来做相应的调整,这点需要明确。

QQ视频聊天,画面顺时针倒转90度问题(MT8163 Android 9.0平台)相关推荐

  1. 将正方形矩阵顺时针转动90度(Java)

    分享一个大牛的人工智能教程.零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击http://www.captainbed.net package live.every.day.Pro ...

  2. Java编程入门与应用 P124——例5-4(计算90度的正弦值、0度的余弦值、1的反正切值、120度的弧度值)

    Java编程入门与应用 P124--例5-4 计算90度的正弦值.0度的余弦值.1的反正切值.120度的弧度值 因为参数里都是double值,需要以弧度代替角度来实现 /*** Java编程入门与应用 ...

  3. centos7 linux ffmpeg 视频 顺时针 旋转 90度 shell 懒人系-16

    特别注意:本人很懒就搞了些懒人办法 1.建立个文本,改个扩展名shell.sh,复制下面代码-保存. 打开终端(建议直接root用戶运行). 2.sudo chmod +x sheell.sh 3.s ...

  4. QQ视频聊天时可以给对方加特效恶搞对方的软件--- 变色鸟摄像头视频特效

    本人开发, 多项全球独家技术, 比如全球独家的摄像头分身技术, 不需要加虚拟摄像头就可以让物理摄像头支持多个程序同时打开: QQ或Skype视频聊天时可以给对方加上特效返回给对方恶搞: 下载地址1:  ...

  5. 图像倒转90度(Rotate Image)

    一.学习要点 0.在原图像矩阵上进行操作: 1.旋转90度,等于将图像对折,然后左右对调: 2.vector矩阵的声明和赋值: 二.代码学习: #include<iostream> #in ...

  6. C/C++二维数组顺时针翻转90度

    题目来源 c语言网:https://www.dotcpp.com/oj/problem2308.html 图片旋转是对图片最简单的处理方式之一,在本题中,你需要对图片顺时 针旋转 90 度. 我们用一 ...

  7. android5.0虚拟定位,流畅度爆棚 搭Android 5.0系统新机一览

    近期各品牌新机都不少,而且90%以上都是Android系统的手机,可见安卓手机的主导地位仍在上升.而在系统层次,Android 5.0已经逐步开始普及,近期上市新机百分百均采用了这一系统,值得一提的是 ...

  8. nubia ui 5.0 android,流畅度爆棚 搭Android 5.0系统新机一览

    近期各品牌新机都不少,而且90%以上都是Android系统的手机,可见安卓手机的主导地位仍在上升.而在系统层次,Android 5.0已经逐步开始普及,近期上市新机百分百均采用了这一系统,值得一提的是 ...

  9. iOS开发--AVFoundation进行视频合成, 导出结果旋转90度问题

    创建出的视频轨道AVMutableCompositionTrack 设置setPreferredTransform __block AVMutableCompositionTrack*videoCom ...

最新文章

  1. win8+ubuntu,ubuntu中打开NTFS文件
  2. Spring-bean的作用域
  3. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)
  4. nginx常用功能全揭秘(内附福利!!!)
  5. 使用CSS属性处理前端开发中长文本造成的内容显示重叠问题
  6. 钉钉机器人怎么设置自动回复_项目部署成功后触发钉钉机器人发送消息提醒——入门配置...
  7. sdut 最少拦截系统
  8. nodejs ffmpeg 超级工具 rtsp fmp4 rtmp
  9. ubuntu下安装redis及在php中使用
  10. 1.redis单机部署
  11. for循环如果先--_97-for循环嵌套 输出反倒直角三角形
  12. python绘制多边形_在python-matplotlib中绘制3D多边形
  13. python 代码行数统计工具_python实现统计代码行数的小工具
  14. SHFileOperation的用法
  15. Prisma(三)——数据模型
  16. Ethernet设备中网络变压器的作用
  17. Linux操作系统下复现github上的项目(一):下载项目、配置环境
  18. 1030: 判断直角三角形 C语言
  19. Java 高并发项目笔记
  20. Android网页广告植入规避方案

热门文章

  1. User already has more than 'max_user_connections' active connections
  2. 被限制的ckplayer播放器如何实现倍速播放和快进
  3. oracle数据泵导出多表,oracle 数据泵导出表
  4. 商汤FPGA优化验证
  5. 地平线检测horizon line detection
  6. 金山打字通2008完整版包含金山打字游戏,网上唯一的
  7. 电脑重装系统,加固态常见问题
  8. java怎么导入包语句_java包(package),包导入详解
  9. 声学测试软件手机版_清华31岁教授将手机天线尺寸缩小100倍,未来有望植入人体|专访...
  10. 为什么我的C语言移位操作达不到效果??