2012-03-21 8 views
32

私はPhoneGapを昨日調べて、電話を傾けながら簡単な "大理石"を作りました。私は現在Androidで開発していますが、電話機が回転したときに移動するのではなく、造園のままにしておきたいと思います。これを行う方法はありますか?PhoneGap - 強制的な風景の向き

マニフェスト:

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

AndroidManifest.xmlを変更したApache Cordova 3.0リリースでは、Cordova開発ワークフローが壊れてしまいます。代わりにプラグインを使用してください。可能な重複した回答をここで確認してください:http://stackoverflow.com/questions/20294090/cordova-3-1-oriention-not-working/21165941#21165941 – sgimeno

答えて

45

試しましたか?あなただけの上の行を追加し、あなたの活動を宣言したAndroidManifest.xmlファイル、インサイド

android:screenOrientation="portrait" 

。例えば

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

これを間違ったアクティビティタグに追加しました。これが勝者でした。歓声 –

+0

@mayurいい気持ち。 –

+0

私のために働いた!ありがとう。 –

3

あなたの活動でこれを試してみてください。 onCreate()の内側とsetContentViewの前。

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

これをどこに置くかわからない、私は以前にjavaに触れていない。 –

+0

@PhilJacksonメインアクティビティのonCreate()メソッドの内部:-) – Gattsu

7

それはあなたのAndroidManifest .xmlファイルにandroid:screenOrientation="landscape"を追加する必要があり、非常に簡単です。

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

それは働きます!ありがとう! –

27

私はそれを知らなかったので、すべてのデバイスのためにこれを行うには正しい方法は、言及するかもしれない重要なconfig.xmlの

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

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

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

+7

Phonegapは値にかかわらず私のためにこれらの設定を無視しているようです。 – apanosa

+0

理想的には、これはすべてのPhoneGapプラットフォームで完全に機能します。私の理論は、PhoneGap WebViewが特定の方向にロックされている可能性がありますが、その包含アクティビティはAndroidManifest.xmlのプロパティに従って回転します。しかし、私はまだこれがPhoneGapで修正できると思います。 PhoneGapはAndroidManifest.xmlを編集でき、DroidGapクラスは回転を管理/防止できます。 –

+1

@apanosa:この解決策は、phonegapビルドに関するものです。私はそれがios 7.xとアンドロイド2.xで現在phonegap 3.4.0で動作することを確認します。 – cherouvim

1

を設定することです:

の場合水和が有効になっているのオンラインphonegap apkコンバータをアプリケーションに使用する場合は、にする必要がありますアプリを再構築するのではなく、完了してください。これは、 "向き"や "フルスクリーン"のような設定でもお手伝いします!

関連する問題