web-dev-qa-db-fra.com

PhoneGap - Forcer l'orientation paysage

J'ai commencé à regarder PhoneGap hier et j'ai créé un simple "marbre" qui roulait tout en inclinant le téléphone. Je développe actuellement sur Android mais je veux que l'orientation reste en tant qu'aménagement paysager au lieu de bouger lorsque le téléphone tourne. Y a-t-il un moyen de le faire?

Manifeste:

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

Code:

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

Avez-vous essayé cela?

Android:screenOrientation="portrait"

À l'intérieur de AndroidManifest.xml fichier, où vous avez déclaré votre activité, ajoutez simplement la ligne ci-dessus.

Par exemple:

<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>
44
mayur rahatekar

La bonne façon de le faire pour tous les appareils est de configurer config.xml

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

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

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

30
Anton

C'est très simple, vous devez ajouter Android:screenOrientation="landscape" dans votre fichier 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>
7
Lucifer

Veuillez essayer ceci dans votre activité. À l'intérieur de onCreate() et avant setContentView.

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

Peut-être important de le mentionner car je ne le savais pas:

Si vous utilisez le convertisseur apk de Phonegap en ligne avec hydratation activée pour votre application, vous devrez reconstruire votre application complètement au lieu de simplement la mettre à jour. Cela vous aidera également avec des préférences comme "orientation" ou "plein écran"!

1
howard.D