PhoneGap – принудительная ориентация ландшафта

Я начал смотреть в PhoneGap вчера и создал простой «мраморный» каток, наклоняя телефон. В настоящее время я занимаюсь разработкой Android, но хочу, чтобы ориентация оставалась как озеленение, а не перемещение, когда телефон вращается вокруг. Есть ли способ сделать это?

Manifest:

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.phonegap.helloworld" android:versionCode="1" android:versionName="1.0" > <supports-screens android:largeScreens="true" android:normalScreens="true" android:smallScreens="true" android:resizeable="true" android:anyDensity="true" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.RECEIVE_SMS" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.BROADCAST_STICKY" /> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".App" android:configChanges="orientation|keyboardHidden" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="com.phonegap.DroidGap" android:label="@string/app_name" android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden"> <intent-filter></intent-filter> </activity> </application> </manifest> 

Код:

 package com.phonegap.helloworld; import android.os.Bundle; import org.apache.cordova.*; public class App extends DroidGap { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); super.loadUrl("file:///android_asset/www/index.html"); } } 

Вы пробовали это?

 android:screenOrientation="portrait" 

Внутри файла AndroidManifest.xml , где вы заявили о своей деятельности, просто добавьте вышеприведенную строку.

Например:

 <activity android:name=".Activity.SplashScreenActivity" android:label="@string/app_name" android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Правильный способ сделать это для всех устройств – настроить config.xml

 <preference name="orientation" value="portrait" /> <preference name="orientation" value="landscape" /> 

https://build.phonegap.com/docs/config-xml

Это очень просто, вам нужно добавить android:screenOrientation="landscape" в ваш XML-файл AndroidManifest .xml.

 <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".LogUploaderActivity" android:label="Log Uploader" android:screenOrientation="landscape" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Попробуйте это в своей деятельности. Внутри onCreate() и перед setContentView.

 // keeps the screen orientation in Landscape mode setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 

Может быть, важно упомянуть, потому что я этого не знал:

Если вы используете онлайн-конвертер apk phonegap с включенной гидратацией для своего приложения, вам придется полностью восстановить приложение, а не просто обновлять его. Это поможет вам также с настройками, такими как «ориентация» или «полноэкранный режим»!