Android:切换加速度计旋转状态设置

ask*_*uke 7 settings android default rotation accelerometer

我已经您的应用程序中找到了大量设置旋转的示例,但我遇到的问题是切换位于以下位置的手机设置:设置,显示,自动旋转屏幕(复选框).
我希望能够检查手机的旋转状态,将其设置为相反(自动或关闭),然后关闭应用程序.

这就是我所拥有的:

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();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果您需要了解更多信息,请让我知道:)
任何帮助表示赞赏,它强调我!

gni*_*ola 5

你有没有设置正确的权限?

我没有和异常细节消息说,

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

这几乎总结了它.