7

我在您的应用程序中找到了大量设置旋转的示例,但我遇到的问题是切换位于以下位置的电话设置:Settings, Display, Auto-rotate screen (checkbox)
我希望能够检查手机旋转状态,将其设置为相反(自动或关闭),然后关闭应用程序。

这就是我所拥有的:

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();
        }
    }
}

如果您需要了解更多信息,请告诉我 :)
感谢您提供任何帮助,这让我很紧张

4

1 回答 1

5

您是否设置了正确的权限?

我没有,异常详细信息说,

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

这几乎概括了它。

于 2012-04-17T05:53:23.493 回答