如何以编程方式检查“旋转设备”?

时间:2018-11-07 13:07:42

标签: java android

我想将一个URL加载到我的webview中,这是一个Casino游戏。但是,当我打开该应用程序时,它在黑屏中显示“请旋转设备”。

我如何以编程方式检查该消息并设置屏幕方向风景,而不用用户旋转设备?

我的MainActivity代码:

use FOS\RestBundle\Controller\FOSRestController;   //
use FOS\RestBundle\View\View;                       // <-- first import
use FOS\RestBundle\Controller\Annotations as Rest; //

class TagController extends FOSRestController      // <-- extend
{
    /**
     * Retrieves a collection of Tag resource.
     *
     * @Rest\View(serializerGroups={"details"})
     * @Rest\Get("/tag")                            // <-- rout
     */
    public function index(TagRepository $tagRepository): View // <-- use View
    {
        $data = $tagRepository->findAll();

        return View::create($data, Response::HTTP_OK);        // <-- how to return
    }
}

AndroidManifest.xml

package com.mob.wunderin.oapp;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebSettings;
import android.content.pm.ActivityInfo;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);


        WebView webView = findViewById(R.id.myWebview);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        webView.loadUrl("http://deuceswildcards.site/wildcards.php?app=fun&Gtype=poker#/main");

        getSupportActionBar().setDisplayShowTitleEnabled(false);

    }
}

输出:

Click here for Output Image

请帮助我检查“旋转设备”消息并以编程方式将屏幕方向设置为横向?

2 个答案:

答案 0 :(得分:0)

只需添加

android:screenOrientation="sensorLandscape"

到您的活动标签。在显示“活动”时,它将迫使设备进入横向状态,同时允许横向方向(基于设备的传感器读数)。

    <activity android:name=".MainActivity"
        android:screenOrientation="sensorLandscape">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

编辑

也从“活动”中删除此行:

this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_USER);

答案 1 :(得分:0)

有一种方法可以用Java以编程方式完成。在您的onCreate方法中,尝试以下操作:

@Override
public void onCreate(Bundle savedInstanceState) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
}

或者,您可以通过清单文件来做到这一点:

<activity android:name=".MainActivity"
android:label="@string/app_name"
android:screenOrientation="landscape">

要检查当前的屏幕方向,请执行以下操作:

int orientation = MainActivity.getResources().getConfiguration().orientation; 
if (orientation == Configuration.ORIENTATION_PORTRAIT) {      
    //The orientation is in portrait so it will set it to landscape
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
}else {
     //The orientation is now landscape which is what you want.
}