Контроль автоповорота экрана по умолчанию в моем приложении - PullRequest
5 голосов
/ 15 марта 2012

У меня есть кнопка переключения в моем приложении.Я хочу, чтобы изменить или контролировать настройки по умолчанию, Автоповорот экрана (Настройки> Дисплей> Автоповорот экрана) программно.Кто-нибудь знает, как это сделать?

Ответы [ 4 ]

10 голосов
/ 15 марта 2012

Вы пробовали это в своей деятельности?

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

//This is the default value
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);

После этого вы можете отключить автоматическую ориентацию:

public static void setAutoOrientationEnabled(ContentResolver resolver, boolean enabled)
{
  Settings.System.putInt(resolver, Settings.System.ACCELEROMETER_ROTATION, enabled ? 1 : 0);
}

Документация

7 голосов
/ 15 марта 2012

Вы можете использовать это:

android.provider.Settings.System.putInt(getContentResolver(),
android.provider.Settings.System.USER ROTATION,user_rotation);

для политики ротации

user_rotation 0 -> ROTATION_0
user_rotation 1 -> ROTATION_90
user_rotation 2 -> ROTATION_180
user_rotation 3 -> ROTATION_270

Подробнее см. http://developer.android.com/reference/android/provider/Settings.System.html#USER_ROTATION.

Также параметр menifyt.xml

<uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
3 голосов
/ 15 марта 2012

Вы устанавливаете параметры поворота по умолчанию в файле манифеста, например:

<activity android:name=".MainTabActivity" android:screenOrientation="portrait">
</activity>

Чтобы программно изменить ориентацию, вам нужно вызвать Activity.setRequestedOrientation ()

0 голосов
/ 17 февраля 2014
a1.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        startActivity(new Intent(getApplicationContext(), MainActivity.class));
        android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.USER_ROTATION,0);
    }
});
a2.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        startActivity(new Intent(getApplicationContext(), MainActivity.class));
        android.provider.Settings.System.putInt(getContentResolver(),
                android.provider.Settings.System.USER_ROTATION,90);
    }
});
...