在你的AndroidStdio中的MainActivity中添加下边代码,解决转向异常问题
int orientation =2; 2 是横屏
public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
orientation = newConfig.orientation;
//这里显示的值只有1和2,1代表竖屏,2代表横屏,这个地方记录一下当前屏幕是否是横屏或者竖屏
Log.d("屏幕切换","onConfigurationChanged: " +orientation);
}
public void onActivityResult(int paramInt1,int paramInt2, Intent paramIntent) {
//这个方法是SDK的函数,QQ活动完成后(返回到咱们游戏的意思),就会调用这个方法。如果没有这种回调,可以尝试在onResume中
//判断一下,如果是不是横屏状态,那么就运行下边方法
if (orientation != Configuration.ORIENTATION_LANDSCAPE) {
//定义一个计时器,时间为1.5秒。
Timer time =new Timer();
TimerTask task =new TimerTask() {
@Override
public void run() {
Log.d("屏幕切换","run: " +orientation);
//1.5秒后,如果屏幕还没有转成横屏,就认为此时屏幕转向异常,进行手动转向
if (orientation != Configuration.ORIENTATION_LANDSCAPE) {
resetScreenOrientation();
}
}
};
time.schedule(task, (long)1500);
}
}
private void resetScreenOrientation() {
//ActivityInfo中有各种屏幕转向,这里我使用的是可以左右切换的横屏设置
int orientation = ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE;
setRequestedOrientation(orientation);
Log.d("屏幕切换","resetScreenOrientation: " +this.getResources().getConfiguration().orientation );
}