2012-05-23 26 views
0

我有一个应用程序,我希望我的应用程序能够尊重旋转的荣誉。但如何检查旋转锁定在Android上?当然编程:)如何检查旋转是否锁定在Android上

=================

感谢imran的答案。我再次将它放在这里,因为我找不到有关DEFAULT_ACCELEROMETER_ROTATION的任何内容,并且如果您只想读取系统设置,则不需要更改用户权限。干杯!

http://developer.android.com/reference/android/provider/Settings.System.html#getInt(android.content.ContentResolver,java.lang.String中)

INT STR = Settings.System.getInt(Context.getContentResolver(),
Settings.System.ACCELEROMETER_ROTATION,DEFAULT_ACCELEROMETER_ROTATION);

回答

3

您可以检查旋转如果使用系统设定为锁定或不:

int str = Settings.System.getInt(context.getContentResolver(),          
      Settings.System.ACCELEROMETER_ROTATION, 
      DEFAULT_ACCELEROMETER_ROTATION); 

    if(str==1) 
    { 
     // rotation is Unlocked 
    } else { 
     // rotation is Locked 
    } 

的AndroidManifest.xml:

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

看到我的编辑答案也许这将帮助你? –

+4

谢谢,它的工作原理!请删除有关用户权限的部分,因为如果我只想读取值,则不需要该部分。 – dongshengcn

+0

@dongshengcn你知道如何使用权限来设置锁定吗? –

3

ρяσѕρєяK溶液的作品,但这个答复是pretier和固定解决方案:

boolean isOrientationEnabled; 

try { 
    isOrientationEnabled = Settings.System.getInt(getContentResolver(),          
     Settings.System.ACCELEROMETER_ROTATION) == 1; 
} catch (SettingNotFoundException e) { 
    isOrientationEnabled = false; 
} 
+0

这有什么更漂亮的?这仅仅是不使用if语句和默认值。 –

+2

首先:if语句在then和else块中包含相同的注释。其次:如果代码在活动中执行,ContentResolver可以轻松调用getContentResolver()。第三:异常没有被处理。 Fourht:最好设置一个处理异常的默认值。第五:你只需要阅读,就不需要书面许可。 –

+0

伟大的工作。我不喜欢添加权限,这个答案正是我喜欢的。谢谢! – Sufian

相关问题