plugin android cordova screen-orientation screen-rotation

android - plugin - cordova orientation



PhoneGap-Forcing Landscape orientation (5)

Empecé a buscar en PhoneGap ayer y creé un simple "mármol" rodando mientras inclinaba el teléfono. Actualmente estoy desarrollando Android, pero quiero que la orientación se mantenga como un paisaje en lugar de moverse cuando el teléfono se mueva. ¿Hay alguna forma de hacer esto?

Manifiesto:

<?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>

Código:

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"); } }


¿Has probado esto?

android:screenOrientation="portrait"

Dentro del archivo AndroidManifest.xml , donde ha declarado su actividad, simplemente agregue la línea anterior.

Por ejemplo:

<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>


Es muy simple, necesitas agregar android:screenOrientation="landscape" en tu archivo 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>


La forma correcta de hacerlo para todos los dispositivos es configurar config.xml

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

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


Por favor intente esto en su actividad. Dentro onCreate() y antes de setContentView.

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


Tal vez es importante mencionarlo porque no lo sabía:

Si usas el convertidor de apk phonegap en línea con la función de hidratación habilitada para tu aplicación, tendrás que reconstruir tu aplicación completamente en lugar de solo actualizarla. ¡Esto también te ayudará con preferencias como "orientación" o "pantalla completa"!