2012-04-25 7 views
0

Я разработал и виджет для Android, и я не хочу отключать функцию вращения моего виджета. поэтому он будет отображать только портретированный никогда не ландшафтный режим.отключить поворот для моего виджета

Я пробовал этот код, но отключил его для всех приложений. я просто только понимаю мой виджет.

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

как я могу это сделать?

благодарит

+0

извините за опечатку «... виджет, и я не хочу отключать« должен быть »... виджет, и я хочу отключить». почему я хочу отключить ротацию, я рисую виджет, и он не перекрашивается, когда происходит вращение, пока я не нажму кнопку на нем. – ysnky

ответ

1

Вы можете создать службу и зарегистрировать его в случае CONFIGURATION_CHANGED, как этот

public class MyService extends Service { 


@Override 
public void onCreate() { 
    super.onCreate(); 

    BroadcastReceiver bReceiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      refreshWidget(); // Code to refresh the widget 
     } 
    }; 

    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED); 
    registerReceiver(bReceiver, intentFilter); 
+0

, но он будет потреблять батарею, не так ли? – ysnky

0

Вы можете использовать accelerometer_rotation для вращения устройства переключения:

String str = Settings.System.getString(paramContext.getContentResolver(), "accelerometer_rotation"); 
if (str.equals("0")) 
     { 
     Settings.System.putString(paramContext.getContentResolver(), "accelerometer_rotation", "1"); 
     } 
if (!str.equals("1")) 
     Settings.System.putString(paramContext.getContentResolver(), "accelerometer_rotation", "0"); 
} 

В манифесте. xml:

<uses-permission android:name="android.permission.WRITE_SETTINGS" /> 
+0

, но, как этот вид изменения, все приложения. я не хочу использовать другие приложения, я просто хочу отключить ротацию только для моего приложения. – ysnky

Смежные вопросы