【问题标题】:Enabling the Gyroscope启用陀螺仪
【发布时间】:2017-11-20 15:56:03
【问题描述】:

我有一个使用 WebGl 或 CCS3D 打开站点的 web 视图。在这个网站上有一个包含陀螺仪的按钮。

如果你通过 chrome 进入这个站点并点击这个按钮,陀螺仪就会打开。 如果您通过 android 应用程序中的 webview 运行该站点,那么当您单击按钮时 陀螺仪,网站不会像在 chrome 中那样旋转。

问题:如何在android上打开陀螺仪,这样当你按下陀螺仪按钮时,网站也像在chrome中一样旋转?

连接了以下权限:

<uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.VIBRATE"/>
    <uses-feature android:name="android.hardware.sensor.accelerometer" android:required="true" />
    <uses-feature android:name="android.hardware.sensor.gyroscope" android:required="true" />

代码:

public class SecondActivity extends AppCompatActivity  {
    WebView webView;
    final String ulr="http://sfer***.com/hodite/";
    SensorManager sensorManager;
    Sensor sensor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.activity_second);
        webView=(WebView)findViewById(R.id.web);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setLoadWithOverviewMode(true);
        webSettings.setUseWideViewPort(true);
        webSettings.setBuiltInZoomControls(true);
        webSettings.setDisplayZoomControls(false);
        webSettings.setSupportZoom(true);
        webSettings.setDefaultTextEncodingName("utf-8");
        webSettings.setRenderPriority(WebSettings.RenderPriority.HIGH);
        webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
        webSettings.setAppCacheEnabled(true);
        webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
        webSettings.setEnableSmoothTransition(true);
        //webView.setWebChromeClient(new WebChromeClient());
        webView.loadUrl(ulr);

        /*sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);*/


    }

请支持我。

【问题讨论】:

    标签: java android android-sensors gyroscope accelerator


    【解决方案1】:

    我认为 webview 不支持陀螺仪。除了使用默认的 Webview,您可以尝试使用 XWalkView 这将支持 Gyroscope。 在 build.gradle 中添加以下代码

    repositories {
    //mavenLocal()
    maven {
        url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'
    }}
    

    在依赖项中添加以下行

    compile 'org.xwalk:xwalk_core_library:20.50.533.12'
    

    在你的布局文件中添加:

    <org.xwalk.core.XWalkView
        android:id="@+id/xwalkWebView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#000000"/>
    

    这将解决您的问题。万事如意!!。

    【讨论】:

    • 谢谢,它对我有用。但是我有一个很大的apk,为什么?我的第一个大小是 1.5mb,我的这个库的 apk 是 50mb
    • 库大小约为 45mb。您可以生成 2 个 APK,每个 APK 的大小将分为 20-20mb。 Google Play 商店将自动管理为哪个设备显示哪个 apk。您可以查看link 了解更多详情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多