17

Android ICS Launcher 4.0.x の奇妙なケースがあります。

前提条件:

  • root 権限を持つ ICS デバイス

  • Android ICS Launcher 4.0.3/4 ソースコードをダウンロードします (変更して実行するため)

手順:

  1. 市場 (Play ストア) に移動し、「Go Task Manager」をダウンロードします。

  2. ランチャーのウィジェットタブを開き、「Mem Optimize」を見つけて、ホーム画面(ワークスペース)にドラッグします

  3. 「フルーツ忍者」をダウンロードしてインストール

  4. ホーム画面の「Mem Optimize」ウィジェットの横に「Fruit Ninja」ショートカットを作成します。

  5. 「Fruit Ninja」を実行し、携帯電話を横向きのままにします (この位置で手に持ってください。これは変更しないでください)。

  6. 「フルーツ忍者」のメニュー画面で「終了」をスライスし、「はい」を選択

  7. ランチャーのホーム画面に戻り、「Mem Optimize」ウィジェットをタッチします

現在の結果:

  • 手順 7 の後、しばらくすると画面が横向きになり、縦向きに戻ります。

期待:

  • 手順 7 の後、画面は PORTRAIT のままにしておく必要があります。

My Tries (ランチャー ICS ソース コードを変更):

  • "Manifest.xml" に追加: android:screenOrientation="portrait"=> まだ問題を解決できません。

  • 構成の変更を処理android:configChanges="orientation|screenSize"します。=> まだ問題を解決できません。

  • 使用: setRequestedScreenOrientation(PORTRAIT)=> まだ問題を解決できません。

私が試したことは、Android 2.x で動作しました。ただし、 4.0.3+ から、どういうわけか期待どおりに動作しません。誰かこれについて何か考えがありますか?

4

2 に答える 2

1

問題はランチャーにはありません。問題は、1 つの構成 (オリエンテーションを含む) が電話のすべてのアクティビティで共有されることです。

したがって、カメラなどのランドスペースに方向を設定するアクティビティがある場合 (これは私が働いている古典的な例です)、他のすべてのアクティビティもランドスケープに「作成」されます。そしてみんなでシェア。

これは Android の初期から発生していますが、変更が非常に速いため気付かないこともあります。

私が言っていることを確認するには、次のようにします。などのダイアログ テーマを使用し @android:style/Theme.Holo.Dialogてアクティビティを記述します。これにより、画面全体をカバーせず、以下のアクティビティを引き続き表示できます。そのアクティビティには、方向が固定されている必要があります。横向きに設定したとしましょう。次に、Android シェルで使用 am start して、作成したばかりのアクティビティを他のアクティビティの上に開始できるようにします。前のアクティビティの向きに関係なく、テスト アクティビティを起動するとすぐに、前のアクティビティがテスト アクティビティと同じ向きになることがわかります。打ち返すと、前のアクティビティで方向が復元されます。ただし、しばらく時間がかかる場合があるため、現在の結果のようなものが表示されます。

于 2012-08-05T03:47:31.813 に答える
0

在庫のICSランチャーには、方向を不特定に設定する場所がいくつかあります。Launcher.javaでを検索するだけですsetRequestedOrientationが、具体的には「eng」ビルドまたはタブレットのいずれかです。onCreateで実行しますが、appscustomizeからのドラッグ/ドロップ後にも実行します。

Launcher.javaのonCreateから:

// On large interfaces, we want the screen to auto-rotate based on the current orientation
if (LauncherApplication.isScreenLarge() || Build.TYPE.contentEquals("eng")) {
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
}
于 2012-05-27T06:29:07.297 に答える