2012-04-05 21 views
7

Znalazłem obciążenie przykładami ustawień obrotu w aplikacji, ale mam problem z przełączaniem ustawień telefonu pod adresem: Ustawienia, Wyświetlanie, Automatyczne obracanie ekranu (pole wyboru).
Chcę móc sprawdzić stan rotacji telefonów, ustawić go na przeciwny (automatyczny lub wyłączony), a następnie zamknąć aplikację.
Android: Przełącz ustawienie ustawienia obrotu przyspieszeniomierza

To jest to, co mam:

import android.app.Activity; 
import android.os.Bundle; 
import android.provider.Settings; 
import android.widget.Toast; 

public class Rotation extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 

     try{ 
     if (android.provider.Settings.System.getInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0) == 1){ 
      android.provider.Settings.System.putInt(getContentResolver(),Settings.System.ACCELEROMETER_ROTATION, 0); 
      Toast.makeText(Rotation.this, "Rotation OFF", Toast.LENGTH_SHORT).show(); 
      finish(); 
      } 
     else{ 
      android.provider.Settings.System.putInt(getContentResolver(), Settings.System.ACCELEROMETER_ROTATION, 1); 
      Toast.makeText(Rotation.this, "Rotation ON", Toast.LENGTH_SHORT).show(); 
      finish(); 
      } 
     } 
     catch(Exception e){ 
      e.printStackTrace(); 
      Toast.makeText(Rotation.this, "Try failed!", Toast.LENGTH_SHORT).show(); 
      finish(); 
     } 
    } 
} 

jeśli trzeba znać żadnego więcej informacji po prostu daj mi znać :)
Każda pomoc jest mile widziana, to podkreślając mi out !!

+0

Czy to działa? Co się stanie, jeśli nie? – zapl

+0

Nie, nie działa. Pokazuje tylko połów, a następnie zamyka. Próbowałem przenieść wartości liczbowe wokół, ale bez zmian. Jakieś pomysły? –

+0

+1 za trik ... Spędziłem godziny szukając tego ... Dzięki –

Odpowiedz

5

Czy ustawiłeś odpowiednie uprawnienia?

ja nie i przesłanie szczegółów wyjątek mówi

"Permission Denial: writing com.android.providers.settings.SettingsProvider uri content://settings/system from pid=306, uid=10037 requires android.permission.WRITE_SETTINGS"

Że prawie podsumowuje to.

+0

Właśnie wypróbowałem to teraz. Działa świetnie!! Dziękuję Ci –