0

私はAndroidウィジェットを開発しましたが、ウィジェットの回転機能を無効にしたくありません。そのため、横向きモードではなく、ポートレートのみがレンダリングされます。

このコードを試しましたが、すべてのアプリケーションで回転が無効になりました。私は自分のウィジェットだけを考えています。

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

どうすればそれを作ることができますか?

ありがとう

4

2 に答える 2

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);
于 2012-04-25T08:10:03.073 に答える
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");
}

manifest.xml 内:

<uses-permission android:name="android.permission.WRITE_SETTINGS" />
于 2012-04-25T08:15:23.397 に答える